08/06/06 19:21:30
MinGWにて作成したDLLをVC++にて呼び出そうと下記のようなソースをコーディングしました。
DLL作成側で生成したポインタのハンドラを呼び出し側に渡そうと
引数にて受け渡ししようとしていますが、
呼び出し側で確認をすると、ハンドラの値は0のままです。
DLL連携をすると引数受け渡しは不可能なのでしょうか?
■DLL作成側(MinGW)
●cpp
extern "C" __declspec(dllexport) int __stdcall GeoOpen(char* chrLicence, char* chrGeoDBDir, char* chrNormalize, long* lngHandler) {
Geo *geo = new Geo();
lngHandler = (long*)geo;
return 1;
}
■DLL呼び出し側(VC++)
●h
typedef int (__stdcall *GEOOPEN)(char*, char*, char*, long*);
●cpp
GEOOPEN geoOpen = (GEOOPEN)GetProcAddress(hGEOCODERDLL, "GeoOpen@16");
long* lngHandler;
if (geoOpen != NULL) {
int intRes = (*geoOpen)(chrLicence, chrGeoDBDir, chrNormalize, lngHandler);
}