자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Delphi 델파이에서 dll 사용 관련 문의합니다.
2020.02.20 20:13
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
안녕하세요. 기존 델파이 구버전을 계속 사용해오던 사용자입니다.
dll 사용하는 작업중 발생하는 상황 문의해봅니다.
기존 사용하던 코드입니다.
var
Handle: THandle;
begin
//dll load
Handle := LoadLibrary(DllName); //DllName:사용Dll
if Handle <= 0 then
begin
//load fail
showmessage('dll load fail');
end else
begin
//load ok
try
//work:use function
finally
FreeLibrary(Handle);
end;
end;
end;
delphi XE10.2 이하 windows x86 프로젝트에서는 정상적으로 읽어왔었는데.
최근 작업중 VS C++ x64 환경으로 작업해야해서
VS C++ x64 dll로 만든후 위코드 사용하면 dll을 읽어올수가 없네요.
x86 환경에서 만들어진 dll은 정상적으로 읽어옵니다.
OS는 windows10
delphi XE10.3 Community Edition 버전으로 테스트해보니
windows x86 : 기존 x86 Dll(O) / x64 Dll(X)
windows x64 : 기존 x86 Dll(X) / x64 Dll(X)
이렇게 되더군요.
delphi x64 프로젝트는 Dll을 사용못하는건가요???
x86 프로젝트에서 x64 dll을 사용하는 방법 또는
x64 프로젝트에서 dll을 사용하는 다른 방법이 있는걸까요??
알려주세요.
Delphi 델파이에서 dll 사용 관련 문의합니다.
2020.02.20 20:13
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
안녕하세요. 기존 델파이 구버전을 계속 사용해오던 사용자입니다.
dll 사용하는 작업중 발생하는 상황 문의해봅니다.
기존 사용하던 코드입니다.
var
Handle: THandle;
begin
//dll load
Handle := LoadLibrary(DllName); //DllName:사용Dll
if Handle <= 0 then
begin
//load fail
showmessage('dll load fail');
end else
begin
//load ok
try
//work:use function
finally
FreeLibrary(Handle);
end;
end;
end;
delphi XE10.2 이하 windows x86 프로젝트에서는 정상적으로 읽어왔었는데.
최근 작업중 VS C++ x64 환경으로 작업해야해서
VS C++ x64 dll로 만든후 위코드 사용하면 dll을 읽어올수가 없네요.
x86 환경에서 만들어진 dll은 정상적으로 읽어옵니다.
OS는 windows10
delphi XE10.3 Community Edition 버전으로 테스트해보니
windows x86 : 기존 x86 Dll(O) / x64 Dll(X)
windows x64 : 기존 x86 Dll(X) / x64 Dll(X)
이렇게 되더군요.
delphi x64 프로젝트는 Dll을 사용못하는건가요???
x86 프로젝트에서 x64 dll을 사용하는 방법 또는
x64 프로젝트에서 dll을 사용하는 다른 방법이 있는걸까요??
알려주세요.
먼저 기존의 소스에서 handle값 체크를 0 --> 32로 수정하셔야합니다. 이전 소스에서도 윈도우32에서는 32로 체크합니다.
그리고 32비트와 64비트에서의 핸들값에 대한 저희 자료를 참조하시기 바랍니다.
https://tech.devgear.co.kr/delphi_qna/429622
아래 자료는 32비트-->64비트로 옮기실 떄 고려하셔야항 부분을 정리해 놓은 자료입니다 참조하시기 바랍니다.
http://www.spacek.xyz/mle/?p=258