|
저도 테스트를 해 보았습니다만... 김현덕님과 같은 방법으로 테스트를 해 보았는데...
GetProcAddress(..) 함수로 DLL 내의 OpenDriver 함수의 주소값을 리턴 받은 변수에 NULL 값이 들어가더군요.
테스트를 잘 못 했던지, 아니면 정말 OpenDriver 라는 함수가 존재하지 않던가.. 그렇겠는데요.
자료실의 dlportio - 98,NT.zip 파일을 받아 압축을 풀어보면...
DLL 파일이 두개가 존재하더군요. 파일의 크기도 둘 다 다르구요.
1. DLL\TDLPortIO.dll
2. DriverLINX\drivers\DLPORTIO.dll
1번의 DLL\source 폴더 내에 TDLPortIO.H 파일을 열어 보면 그 안에 OpenDriver(), CloseDriver() 함수가 분명 존재하고 있거든요.
어떤 DLL 파일을 인스톨해야하는 건지요?
파일명만으로 판단해 보면 2번파일 같은데...
TDLPortIO.dll 는 빌더에서 사용하고, 또 TDLPortIO.dll 내부에서 DLPortIO.dll 을 사용하고 있는 것은 아닌가 싶어 LoadLibrary("TDLPortIO.dll"); 를 써봐도 에러를 내는군요.
쩝쩝...
어떤 고수분께서, 사용하고 계신 소스를 간단하나마 자료실에 올려주신다면 고맙겠습니다.
감사합니다.
=====================================================
지나가는 사람 님이 쓰신 글 :
:
: dlportio.dll에는 opendriver라는 함수가 없는 걸로아는데..
:
: 좀 이상하네요..
:
:
: 김현덕 님이 쓰신 글 :
: : dll을 사용하려고 아래처럼 했는데요..
: : OpenDriver값이 Null로 나와서 실행이 안되네요..
: : dll화일은 다른분들도 사용해본거라 정상입니다.
: : 호출할 함수는
: : void OpenDriver(void) 형태입니다.
: : 예전에 이런형태로 정상적으로 사용했었는데..이번엔 잘안되네요..
: :
: : //------------------------------------------------------------------------
: :
: : void (__stdcall* OpenDriver)();
: : HINSTANCE hinst;
: : hinst = LoadLibrary("dlportio.dll");
: : OpenDriver = (void (__stdcall*)())GetProcAddress(hinst, "OpenDriver");
: : if (OpenDriver)
: : OpenDriver();
: : FreeLibrary(hinst);
: :
: : //------------------------------------------------------------------------
|