C# 调用C++DLL 问题,高手进来帮帮,猪年好运!!
因项目需要 程序要调用一个C++ 开发的SDK 中的DLL (dhnetsdk.dll)
regsvr32 dhnetsdk.dll 提示信息 无法找到输入点,注册不了
我想 dhnetsdk.dll应该不是标准的COM吧。
于是采用 DllImport( "dhnetsdk.dll ")
SDK说明原型
-----------
CLIENT_API void CLIENT_SetConnectTime(int nWaitTime, int nTryTimes);
 函数说明:设置与设备的连接等待时间
 调用顺序无关,SDK默认值为3000ms,对外网一般需要增加到5000ms,此值不影响设备连接速度, 只有当网络状态不好时延长等待时间,可以提高连接成功几率。
 参数说明:
nWaitTime
连接等待时间,毫秒级
nTryTimes
连接次数,暂时为无效值
 返回值:无
------------
我测试程序
[DllImport( "dhnetsdk.dll ", CallingConvention=CallingConvention.Cdecl )]
public static extern void CLIENT_SetConnectTim(int nWaitTime, int nTryTimes);
private void Button1_Click(object sender, System.EventArgs e)
{
int li_waitime = 5000;
int li_trytime = 8;
CLIENT_SetConnectTim(li_waitime,li_trytime);
}
--------------------
运行 Button1_Click
无法加载 DLL (dhnetsdk.dll)。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.DllNotFoundException: 无法加载 DLL (dhnetsdk.dll)。
源错误:
行 61: int li_waitime = 5000;
行 62: int li_trytime = 8;
行 63: CLIENT_SetConnectTim(li_waitime,li_trytime);
行 64: }
行 65:
源文件: d:\junval\showdatetime.aspx.cs 行: 63
堆栈跟踪:
[DllNotFoundException: 无法加载 DLL (dhnetsdk.dll)。]
Junval.ShowDateTime.CLIENT_SetConnectTim(Int32 nWaitTime, Int32 nTryTimes) +0
Junval.ShowDateTime.Button1_Click(Object sender, EventArgs e) in d:\junval\showdatetime.aspx.cs:63
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain() +1277
--------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.573; ASP.NET 版本:1.1.4322.573
高手帮忙一下 dhnetsdk.dll 我放置在调用页面同一目录下
------解决方案--------------------先用全路经看看
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)
最新版本:20070212
http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
------解决方案--------------------用PE工具查看DLL的导出函数是否为标准的CLIENT_SetConnectTim
如果是@@CLIENT_SetConnectTxx形势的,调用很麻烦