日期:2014-05-19  浏览次数:20925 次

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形势的,调用很麻烦