我在Delphi程序中使用c++ dll并从dll导入功能,如下所示:
function NET_DVR_RealPlay_V40(lUserID: LongInt;var lpPreviewInfo: LPNET_DVR_PREVIEWINFO; fRealDataCallBack_V30:REALDATACALLBACK;pUser:Pointer): LongInt;stdcall; external 'HCNetSDK.dll' name'NET_DVR_RealPlay_V40';
这是C++代码:
LONG NET_DVR_RealPlay_V40( LONG lUserID,
LPNET_DVR_PREVIEWINFO lpPreviewInfo,
REALDATACALLBACK fRealDataCallBack_V30,
void *pUser,);
但是在运行程序时显示此错误:
在动态链接库HCNetSDK.dll中找不到过程入口点NET_DVR_RealPlay_V40
我认为在dll中不存在此功能,因此可以使用依赖遍历器在dll中找到此功能,其结果是:
enter image description here
我不知道我的问题在哪里
最佳答案
错误消息告诉您DLL不导出具有该名称的函数。一些可能的原因:
使用dumpbin或Dependency Walker之类的工具检查导出函数的名称,然后从那里进行调试。
顺便说一句,C++函数声明使它看起来像
cdecl
是调用约定。