자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 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 20072
공지 유용한 관련 사이트 관리자2 2014.03.20 58976
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 102602
2119 delphi10 dll 호출시 오류 [1] secret 홍홍홍 2015.12.27 4
2118 [마이그레이션] Panel의 Color 속성이 적용되지 않습니다. file 험프리 2015.12.28 708
2117 listbox의 multiselect 속성 접근 [2] 라드 2015.12.28 438
2116 [xe8] 앱이 항상 켜져있으려면.. [1] 가을이다 2015.12.28 355
2115 not enough space 어떻게해결하나요 [2] 봉봉봉 2015.12.30 705
2114 ## Windows10 최근 업데이트후 TWebbrowser 심각한 문제.. [2] 가을이다 2015.12.31 709
2113 델파이버전업 하면서 이 버그는 고쳐졌을줄 알았는데..... [4] 아놀드 2016.01.04 430
2112 DataSnap Server에 메모리 릭이 발생합니다. [5] 델사냥 2016.01.04 428
2111 IBLite 연결이 잘 안되네요~ [6] file 아놀드 2016.01.07 285
2110 delphi 10에서 사물인터넷관련 개발 [1] 영감땡감 2016.01.07 297
2109 FDConnection1.Params.Values['Database'] := TPath.Combine(TPath.SharedGetDocumentsPath, 'AAA.db') 가 안됩니다. 어려워 2016.01.09 267
2108 바코드로부터 입력과 키보드 입력을 어떻게 구분하나요? [1] from5 2016.01.09 1475
2107 TCppWebBrowser 컴포넌트를 폼에 올리면 Access violation 오류가 발생합니다. file 험프리 2016.01.11 328
2106 IBLite 연결 질문~ [2] file 아놀드 2016.01.11 366
2105 XE10 에서 TOOL 파렛트에 openwire studio 컴포넌트를 사용할려면 어찌해야 하죠 [1] 손오공 2016.01.12 123
2104 Installer for OpenWire (368 MB): OpenWire 7.7.0.0 VCL and FireMonkey 32 & 64 bit support for XE7 to 10 Seattle 을 다운로드해서 설치하였으나 컴포넨트가 보이지 않아요 예를 들어 TOOL 파렛트에 OPENWIRESTUDIO 컴포넌트가 보이던데 (유투브동영상 참조) 전화좀 기다립니다 [1] 손오공 2016.01.12 162
» windows 7 , delphi xe5 에서의 LoadLibrary 가 실행되지 않습니다. [1] 쭈니쿤 2016.01.12 776
2102 Edit options font관련건 [1] file 김하나 2016.01.12 134
2101 [문의]Datasnap 와 midas 장단점 초보타출 2016.01.12 299
2100 드래그시 커서,키보드 노출 및 오브젝트 동작에대해서 문의합니다 file 봉봉봉 2016.01.12 172