C++Builder 写的一个动态库,对应函数,
如下: extern "C" __declspec(dllexport) int __stdcall GetPIDByCardNo( char* sCardNo, char* sPID, char* sErr ); VC2008中在控制台程序上可以调用,程序如下:
typedef int ( _stdcall *GetPIDByCardNoFunc )( char *, char *, char * );int main()
{
char sCardNo[18];
char sPID[20];
char sErr[100];
memset( sCardNo, 0x00, sizeof( sCardNo ) );
memset( sPID, 0x00, sizeof( sPID ) );
memset( sErr, 0x00, sizeof( sErr ) );
strncpy( sCardNo, "87109823", sizeof( sCardNo ) - 1 ); GetPIDByCardNoFunc _GetPIDByCardNoFunc ; HINSTANCE hInstLibrary = LoadLibrary(L"KCPIDNO.dll");
if (hInstLibrary == NULL)
{
FreeLibrary(hInstLibrary);
}
else
{
} _GetPIDByCardNoFunc = (GetPIDByCardNoFunc)GetProcAddress( hInstLibrary, "GetPIDByCardNo" );
if ( _GetPIDByCardNoFunc == NULL )
{
FreeLibrary( hInstLibrary ); //释放
}
else
{
_GetPIDByCardNoFunc( sCardNo, sPID, sErr );
cin.get(); FreeLibrary(hInstLibrary); // 调用完后,要释放内存。
}
}
同样的调用程序将其放到 ActiveX工程中就出现 GetProcAdrress 返回 GetPIDByCardNoFunc 值为 NULL??
这是怎么回事呢???
拜求指点。谢谢!!!??
公开(695805548) 15:44:01
C++Builder 写的一个动态库,对应函数,
如下: extern "C" __declspec(dllexport) int __stdcall GetPIDByCardNo( char* sCardNo, char* sPID, char* sErr ); VC2008中在控制台程序上可以调用,程序如下:
typedef int ( _stdcall *GetPIDByCardNoFunc )( char *, char *, char * );int main()
{
char sCardNo[18];
char sPID[20];
char sErr[100];
memset( sCardNo, 0x00, sizeof( sCardNo ) );
memset( sPID, 0x00, sizeof( sPID ) );
memset( sErr, 0x00, sizeof( sErr ) );
strncpy( sCardNo, "87109823", sizeof( sCardNo ) - 1 ); GetPIDByCardNoFunc _GetPIDByCardNoFunc ; HINSTANCE hInstLibrary = LoadLibrary(L"KCPIDNO.dll");
if (hInstLibrary == NULL)
{
FreeLibrary(hInstLibrary);
}
else
{
} _GetPIDByCardNoFunc = (GetPIDByCardNoFunc)GetProcAddress( hInstLibrary, "GetPIDByCardNo" );
if ( _GetPIDByCardNoFunc == NULL )
{
FreeLibrary( hInstLibrary ); //释放
}
else
{
_GetPIDByCardNoFunc( sCardNo, sPID, sErr );
cin.get(); FreeLibrary(hInstLibrary); // 调用完后,要释放内存。
}
}
同样的调用程序将其放到 ActiveX工程中就出现 GetProcAdrress 返回 GetPIDByCardNoFunc 值为 NULL??
GetLastError() = 127
如下: extern "C" __declspec(dllexport) int __stdcall GetPIDByCardNo( char* sCardNo, char* sPID, char* sErr ); VC2008中在控制台程序上可以调用,程序如下:
typedef int ( _stdcall *GetPIDByCardNoFunc )( char *, char *, char * );int main()
{
char sCardNo[18];
char sPID[20];
char sErr[100];
memset( sCardNo, 0x00, sizeof( sCardNo ) );
memset( sPID, 0x00, sizeof( sPID ) );
memset( sErr, 0x00, sizeof( sErr ) );
strncpy( sCardNo, "87109823", sizeof( sCardNo ) - 1 ); GetPIDByCardNoFunc _GetPIDByCardNoFunc ; HINSTANCE hInstLibrary = LoadLibrary(L"KCPIDNO.dll");
if (hInstLibrary == NULL)
{
FreeLibrary(hInstLibrary);
}
else
{
} _GetPIDByCardNoFunc = (GetPIDByCardNoFunc)GetProcAddress( hInstLibrary, "GetPIDByCardNo" );
if ( _GetPIDByCardNoFunc == NULL )
{
FreeLibrary( hInstLibrary ); //释放
}
else
{
_GetPIDByCardNoFunc( sCardNo, sPID, sErr );
cin.get(); FreeLibrary(hInstLibrary); // 调用完后,要释放内存。
}
}
同样的调用程序将其放到 ActiveX工程中就出现 GetProcAdrress 返回 GetPIDByCardNoFunc 值为 NULL??
这是怎么回事呢???
拜求指点。谢谢!!!??
公开(695805548) 15:44:01
C++Builder 写的一个动态库,对应函数,
如下: extern "C" __declspec(dllexport) int __stdcall GetPIDByCardNo( char* sCardNo, char* sPID, char* sErr ); VC2008中在控制台程序上可以调用,程序如下:
typedef int ( _stdcall *GetPIDByCardNoFunc )( char *, char *, char * );int main()
{
char sCardNo[18];
char sPID[20];
char sErr[100];
memset( sCardNo, 0x00, sizeof( sCardNo ) );
memset( sPID, 0x00, sizeof( sPID ) );
memset( sErr, 0x00, sizeof( sErr ) );
strncpy( sCardNo, "87109823", sizeof( sCardNo ) - 1 ); GetPIDByCardNoFunc _GetPIDByCardNoFunc ; HINSTANCE hInstLibrary = LoadLibrary(L"KCPIDNO.dll");
if (hInstLibrary == NULL)
{
FreeLibrary(hInstLibrary);
}
else
{
} _GetPIDByCardNoFunc = (GetPIDByCardNoFunc)GetProcAddress( hInstLibrary, "GetPIDByCardNo" );
if ( _GetPIDByCardNoFunc == NULL )
{
FreeLibrary( hInstLibrary ); //释放
}
else
{
_GetPIDByCardNoFunc( sCardNo, sPID, sErr );
cin.get(); FreeLibrary(hInstLibrary); // 调用完后,要释放内存。
}
}
同样的调用程序将其放到 ActiveX工程中就出现 GetProcAdrress 返回 GetPIDByCardNoFunc 值为 NULL??
GetLastError() = 127
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货