자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 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 19791
공지 유용한 관련 사이트 관리자2 2014.03.20 58763
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 102315
1159 class tlineseries not found [1] rrraggg 2017.11.30 157
1158 TMediaPlayer 위의 텍스트 구현 문제 [1] 소란코더 2017.12.01 166
1157 (델파이xe8) 중국어 데이타베이스 등록시 깨짐 발생 [1] 라일락 2017.12.01 408
1156 [안드로이드]LocationSensor의 Accuracy / Distance 에 대한 문의 [1] 소란코더 2017.12.04 273
1155 CPort baudrate 질문드려요 [1] 신종훈 2017.12.04 359
1154 안드로이드 Runtime.getRuntime().exec 커멘드처럼 할려면 어떻게 해야하나요? [1] 소란코더 2017.12.04 1860
1153 현재 회사에서 xe2를 사용 중인데 동일 PC에 도쿄버전을 같이 설치하여 사용해도 괜찮나요? zenojm 2017.12.05 632
1152 Datasnap 오류 문의 [1] 파란하늘 2017.12.07 234
1151 파이어몽키 mms 장문문자+이미지파일및 첨부파일 전송?? [1] kerry 2017.12.07 692
1150 모바일에서 메일전송시 ssl negotiation failed 메세지?? [1] kerry 2017.12.08 350
1149 델파이 도쿄10.2.1 에서 개발한 앱을 ios Enterprise program형태로 배포 [1] 밤바야 2017.12.11 167
1148 intent 이용 sms,mms 보낼때 이미지 파일및 동영상파일 첨부는?? 고견을 부탁드립니다. 답변 0 [1] kerry 2017.12.12 1105
1147 XE10 시애틀에서는 문제가 없는 소스가 10.2에서 컴파일 후 segment falut 11이 발생해요~ [1] file 소란코더 2017.12.12 151
1146 cport 질문드려요! 신종훈 2017.12.13 236
1145 [마이그레이션] MaxLength 속성이 이전버전(2007 이전)에서는 한글이 2였는데... file 험프리 2017.12.14 467
1144 디스플레이 설정에서 항목 크기 변경(HighDPI 적용) 후 컨트롤 크기 및 위치를 수동 지정 시 올바르게 표시되지 않습니다. file 험프리 2017.12.14 1465
1143 sendMultimediaMessage 사용방법은?? [1] kerry 2017.12.14 576
1142 XE10.2 Showmodal 폼에서 TEdit/TButton등 안 먹습니다. [1] 소란코더 2017.12.15 249
1141 Delphi 10.2.1 Update후 MSSQL 2000 연결시 오류가 납니다. 불나방 2017.12.18 362
1140 Multithread 한시민 2017.12.19 181