자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 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 17252
공지 유용한 관련 사이트 관리자2 2014.03.20 56152
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 99576
1159 앱스토아에서 심사 거절 당한 이유를 해결해주세요. [2] file 화이부동 2017.11.07 617
1158 델파이 웹에서 exe파일 실행하기 문의드립니다. 알거없잔하용 2018.03.27 617
1157 앱스토어 심사거부건 도움 부탁합니다. [1] 돌팅 2018.10.06 617
1156 이미지 저장 및 읽기 오류 [1] 처음처럼 2016.03.04 617
1155 Datasnap 로 3티어 개발중에 [3] 제트콜 2016.06.16 619
1154 C++ Builder 6의 project에서 네트워크 공유폴더 경로에 있는 Source파일이 열리지 않습니다. [3] file 영우CnI 2019.08.09 619
1153 10.4 버전 DataSnap 연결 에러 질문드립니다. [4] syc 2020.06.25 620
1152 윈도우10 에서 BLE 검색 [1] 서영아빠 2016.12.26 621
1151 폼에 콤보 박스 200개(item 60개) 실행시 시간 오래 걸림 현상 [2] file 포세가이 2020.03.05 621
1150 델파이와 라드스튜디오 차이점 [1] 100jk 2018.08.07 622
1149 Tokyo 10.2.1에서 동적생성된 TFrame 해제시 오류... [6] file 푸른솔 2017.10.14 623
1148 키보드HOOK에 관하여.... [1] kdocs 2017.02.24 623
1147 FMX에서 설지경로 또는 실행경로를 아는 방법은? [2] 화이부동 2016.08.10 625
1146 DB에 이미지 등록 syc 2016.01.15 625
1145 TWebBrowser 컴포넌트 관련 사항 [2] 자객 2016.03.22 625
1144 Fastreport와 QuickReport중 장기적으로 볼때 어떤게 나은가요? [3] 화이부동 2016.09.12 627
1143 안드로이드에서 app 실행 후 백그라운드시 이벤트는 어떻게? [1] devpro 2017.05.05 629
1142 delphi xe7으로 변경하면 롤리팝 버그가 해결되나요 [2] silkroad99 2015.04.07 629
1141 규모가 큰 프로젝트에서 코드 작성 시 IDE 응답없음이 자주 발생합니다. file 험프리 2017.01.25 634
1140 델파이5에서 Fastreport(*.frf)개발->델파이10에서 (*.fr3)로 변형 방법? [3] 도고래 2016.04.20 635