내가 전에 본 적이없는 LoadLibrary와 관련된 문제가 있는데, 처음 본 것은 "C : \ Program Files (x86)"모듈 안에 "nss3.dll"모듈을로드하려고하는 것입니다. \ Mozilla Firefox \ "에서 LoadLibrary를 사용하여 일부 함수를 가져 오지만 0 반환 값으로 실패하면 system32 폴더에서 .dll을 하드 코딩 해 보았습니다.LoadLibrary가 현재 디렉토리에 따라 성공하거나 실패하는 이유는 무엇입니까?
편집 :이 문제를 극복하기위한 방법은 SetCurrentDirectory를 호출 한 다음 .dll에 대한 경로를 지정하지 않고 모듈을 가져 오는 것이지만 그럴 수는 없지만 이유가 무엇인지 알아야합니다. 나를.
편집 : 여기에 몇 가지 조각 (이 작품)입니다 :
var
NSSModule: HModule;
begin
SetCurrentDir('C:\Program Files (x86)\Mozilla Firefox');
NSSModule := LoadLibrary('nss3.dll');
이하지 않는 일, 왜 아무 생각이 ... :
var
NSSModule: HModule;
begin
NSSModule := LoadLibrary('C:\Program Files (x86)\Mozilla Firefox\nss3.dll');
Google에 표시하지 않는 코드는 디버깅 할 수 없습니다. 코드가 작동하지 않는 이유를 알아내는 데 도움이 필요하면 ** 코드를 게시하십시오 **. 그때까지 [LoadLibrary] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms684175%28v=vs.85%29.aspx)에 대한 MSDN의 설명서를 읽을 수 있습니다. 특히 라이브러리를 찾는 방법에 대한 부분. –
'GetLastError'. –
응용 프로그램이 32 비트 또는 64 비트입니까? ... – jlahd