typedef int __declspec(dllexport) fWD_SYSTERM_ADDREC( char* folderplace,char* base_id,char* code,char* filenamebuf);
这个是c++写的dll一个方法
我调用的时候总是加载不成功
public static extern int fWD_SYSTERM_ADDREC(string folderplace, string base_id, string code, string filenamebuf);
这个是我的声明"System.DllNotFoundException: 无法加载 DLL“watchdatadll.dll”: 由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。 (异常来自 HRESULT:0x800736B1)。\r\n   在 _06_21.Common.fWD_SYSTERM_ADDREC(String& folderplace, String& base_id, String& code, String& filenamebuf)\r\n   在 _06_21.Form1.WrightCard() 位置 E:\\Test\\06-21\\06-21\\Form1.cs:行号 35"
报错……  那位高手帮忙看看   是dll的问题还是方法声明的问题   怎么解决???
 

解决方案 »

  1.   

    你的动态库有没有放到Debug或Release目录下?
    必须要放过去的。
      

  2.   

    这种错误应该是找不到dll把C/C++的dll放到C#生成的exe的目录中去。 包括watchdatadll.dll使用的其它dlls
      

  3.   

    好像应该是watchdatadll.dll依赖与其他的类库
    可以用dependens.exe查看。参考
    http://www.cnblogs.com/niniwzw/archive/2009/09/09/1563332.html
    http://dev.firnow.com/course/3_program/c/c_js/2007109/77308.html
      

  4.   

    你自己写的c++代码。这就好办了。启用vs的非托管代码调试,你的c++代码也能跟进去的。不过从提示上来看,应该是你dll路径问题。