자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 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 19715
공지 유용한 관련 사이트 관리자2 2014.03.20 58653
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 102197
2119 게시글 수정 부탁드립니다. [1] vane 2019.11.19 271
2118 질문 드립니다..TDBGrid 에 이미지 넣을려고 합니다.. [3] 초보델팡이 2019.11.26 271
2117 PushEvents1.StartupNotification 문의드립니다 [1] 최민철 2015.06.30 271
2116 child form 에서 mdi form 의 버튼 클릭 이벤트 [1] 가나다 2021.03.12 271
2115 IBConsol.exe 에러 [1] 스카이 2017.01.25 272
2114 어플리케이션 배포시에.. [2] 미크 2018.05.14 272
2113 10.2.1 Tokyo - Linux Platform 개발환경 구축관련 문의 거북선생 2019.08.08 272
2112 FastReport 설치 오류 [1] file 박준형 2017.03.16 272
2111 [XE8 출시세미나] 물리엔진인 Box2D를 모바일에서도 사용할 수 있나요? [1] Humphery 2015.04.30 272
2110 FDBatchMove 질문입니다. [1] 희망나라 2021.03.24 272
2109 Delphi TWebBrowser 에서 360 파노라마 VR 속도가 늦어요. [3] file midas 2018.11.19 273
2108 addindex 에서 key viloation 에러 [2] 가나다 2019.04.02 273
2107 DBGrid에 CheckBox넣는 방법좀 공유부탁드립니다. [1] 볏짚 2020.04.16 273
2106 OCX 설치가 이상하게 안되요~ 카이로스 2016.01.27 274
2105 베를린에서 엑셀 사용 에러 [1] file 가이오 2016.10.14 274
2104 object lock not owned. 오류가 나는 원인이 뭔가요?? sihwan 2018.08.03 274
2103 [ldandroid Error] 시애틀 안드로이드 빌드 에러. file RumAndCoke 2016.01.20 274
2102 RAD Studio 사용 중 [1] file 초코코초 2018.10.08 275
2101 RIO 에서 TWebbrowser 문제해결 차선책 [1] 지병철 2019.01.10 275
2100 Windows 64-bit로 빌드 후 실행 시 오류가 납니다. [1] file 비앤케이 2020.02.03 275