我有一个DLL,我想添加到我的C#项目,我有一些问题。首先,我的DLL用C ++编码,我有一个函数的接口来导出它。
extern "C" __declspec(dllexport) char* sniff()
{
return ps.Sniff();
}
我有一个实例“ps”,它在连接DLL时初始化套接字。关键是我需要在调用导出的函数时初始化此实例。我的问题是当我在我的C#项目中导入它时,我的DLL被分离,没有明显的原因,我不能再调用我的导出函数。
我在C#projet中使用这种语法:
[DllImport(@"C:\Documents and Settings\Pat\Bureau\sniffoporn\Release\sniff.dll", EntryPoint = "sniff", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr sniff();
我尝试了一些重要的事情:
我想知道为什么我的DLL正在分离,如何在其余的处理生命中保持它的附加。
非常感谢
答案 0 :(得分:0)
您的DLL本身可能会发生异常。使其在Visual Studio中分离以防止应用程序崩溃。毕竟C#是托管代码。
尝试使用具有非常简单功能的不同(虚拟)dll执行相同的过程。如果它仍然出现,则表示您的方法有问题,否则使用您尝试使用的DLL。