자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)

본 게시판 사용시 당부 사항
* 이 게시판은 자유롭게 질문을 올리고 자발적으로 답변을 공유하는 게시판입니다.
* 어느 누구도 답변을 달아야만 하는 책임은 없습니다.
* 따라서 질문을 올리실 때에는 최대한 자세하고 정중하게 질문을 올려 주세요.
* 최대한 질문을 자세히 올려야 답변도 자세히 올라 옵니다.
* 본 질문에 답변을 주시는 여러 개발자님들께 미리 감사드립니다.
-----------------------------------------------------------------------------------------------

안녕하세요.

예전에 waterandfood@nate.com 아이디로 Delphi XE 5를 구매하였습니다.

현재 델파이7(window xp) 작업한 파일들(dll 포함)을 델파이xe5(window7 64bit)로 복사해와서 마이그레이션 중에 있습니다.

결론부터 말씀드리자면 LoadLibrary 함수가 실행이 되지 않는거 같습니다.

델마당이나 구글링을 해봐도 제가 원하는 LoadLibrary에 대한 답은 찾지를 못했습니다.

프로그램 실행순서는 로그인화면에서 로그인후 메인화면이 열립니다.

그전에 알림화면이 있는지 체크하여 알림화면이 있으면 알림화면을 열고 그렇지 않으면 메인화면이 열립니다.

현재는 알림화면이 열려야 하는데 열리지 않습니다. 그리고 메인화면이 보입니다.

메인화면서도 메뉴들을 클릭하면 클릭한 메뉴화면이 열리지 않습니다.(알림화면이 열리지 않듯이)

아래는 LoadLibrary관련 RunDll소스입니다.

 

unit RunDll;
interface
uses
  Windows, SysUtils, Classes, Controls, Forms;
type
  TRunDll = class(TObject)
  private
    { Private declarations }
    FList : TStringList;
    Function LoadDll(DllName:String):Integer;
  public
    { Public declarations }
    Constructor Create;
    Destructor Destroy; override;
    class Procedure Run(ModuleID,DllName:String; Parent:TWinControl; Visible:Boolean);
  End;
implementation
uses
  uSubForm;
var
  FRunDLL : TRunDLL = Nil;
Constructor TRunDll.Create;
Begin
  Inherited Create;
  FList:= TStringList.Create;
End;
Destructor TRunDll.Destroy;
Begin
  FList.Free;
  Inherited Destroy;
End;
Function TRunDll.LoadDll(DllName:String):Integer;
Begin
  showmessage('DllName1 :' + DllName);
  //'DllName1 => C:\Users\Public\Documents\RAD Studio\projects\son_project\son_atp\ALIM_JDJ.DLL'  DllName1값을 잘 나타냅니다.
  

  FList.Clear;
  FList.Add(DllName);
  FList.Values[DllName] := DllName;  
  
  showmessage('DllName2 =>' + FList.Values[DllName]);
  //'DllName2 => C:\Users\Public\Documents\RAD Studio\projects\son_project\son_atp\ALIM_JDJ.DLL'  DllName2값을 잘 나타냅니다.

 

  Result:= StrToIntdef(FList.Values[DllName], -1);


  If Result = -1 then Begin

 

  //xp에서 적용된 소스
  //Result:= LoadLibrary(PChar(DllName));

 

  // windows 7에서 적용된 소스
    Result:= LoadLibrary(PWideChar(WideString(DllName)));

 

    FList.Values[DllName]:= IntToStr(Result);

  End;
End;
class Procedure TRunDll.Run(ModuleID,DllName:String; Parent:TWinControl; Visible:Boolean);
Var
  iHandle : Integer;
  DllFunc : Procedure (ModuleID:String; App:TApplication; Parent:TWinControl; Visible:Boolean); far;
Begin
  If FRunDLL = Nil then FRunDLL:= TRunDLL.Create;
  Try
    iHandle:= FRunDLL.LoadDll(DllName);
    If iHandle > 32 then Begin


      //xp에서 적용된 소스
      //@DllFunc:= GetProcAddress(iHandle, PChar('OpenSubModule'));

 

      // windows 7에서 적용된 소스
      @DllFunc:= GetProcAddress(iHandle, PAnsiChar('OpenSubModule'));


      If @DllFunc <> Nil then
        DllFunc(ModuleID, Application, Parent, Visible);
    End;
  Except
  End;
End;
end.

 

나머지 소스들은 델파이7에서 사용하던 그대로 델파이xe5에 적용중입니다.

 

답변을 부탁드립니다.

번호 제목 글쓴이 날짜 조회 수
공지 [프로그래밍 강의] 2021.6~2021.12 관리자 2015.01.22 17186
공지 유용한 관련 사이트 관리자2 2014.03.20 56062
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 99498
733 [Q]Delphi 5, 7의 Oracle 12c 지원 문의 [2] 지롱 2016.01.27 411
732 OCX 설치가 이상하게 안되요~ 카이로스 2016.01.27 264
731 Access Violation at address 0040B508... 질문드립니다. ^^ [1] 쭈니쿤 2016.01.22 2925
730 FormatDateTime 함수 사용시. [3] 공감 2016.01.18 1121
729 사용자 지정 텍스트 크기(DPI) 설정. [1] file 김재욱 2016.01.22 1483
728 Edit options font관련건 [1] file 김하나 2016.01.12 121
727 Apps must follow the iOS Data Storage Guidelines or they will be rejected silkroad99 2016.01.20 249
726 fmx에서 다국어 지원하려면?? [3] file 라드 2016.01.18 273
725 XE7 컴포넌트 문의 드립니다. sue 2016.01.18 174
724 바코드 리더기로부터 오는 값을 입력받지 않게 하는 방법 문의요 [1] from5 2016.01.15 301
723 Delphi 2010 사용 중 갑자기 예약어에 밑줄이 생겼습니다. [1] file 델파이 2016.01.18 183
722 Android App개발에서 Memo장 내용 File저장하기 [1] 아기사랑 2016.01.18 615
721 델파이버전업 하면서 이 버그는 고쳐졌을줄 알았는데..... [4] 아놀드 2016.01.04 412
720 DB에 이미지 등록 syc 2016.01.15 625
719 Exception EFilerError in module rtl190.bpl at 000FF30F 에러가 납니다. 쭈니쿤 2016.01.15 367
718 (Delphi 10) UPX 압축 문제 [1] 김재욱 2016.01.14 389
717 XE2 -> XE10 으로 컴파일만 다시했는데...오류가 납니다. 파란하늘 2016.01.13 102
716 드래그시 커서,키보드 노출 및 오브젝트 동작에대해서 문의합니다 file 봉봉봉 2016.01.12 162
715 not enough space 어떻게해결하나요 [2] 봉봉봉 2015.12.30 694
» windows 7 , delphi xe5 에서의 LoadLibrary 가 실행되지 않습니다. [1] 쭈니쿤 2016.01.12 741