0
我有一个DLL,我想添加到我的C#项目,我有一些问题。首先,我的DLL用C++编码,并且我得到了一个函数的接口来导出它。我怎样才能控制一个DLL分离
extern "C" __declspec(dllexport) char* sniff()
{
return ps.Sniff();
}
我有一个实例“PS”是初始化一个插座时,DLL连接。重点是当我调用我的导出函数时,我需要初始化此实例。我的问题是,当我在我的C#项目中导入它,我的DLL分离没有明显的原因,我不能再调用我的导出函数。
我用这个语法在我的C#谟:
[DllImport(@"C:\Documents and Settings\Pat\Bureau\sniffoporn\Release\sniff.dll", EntryPoint = "sniff", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr sniff();
那我tryed一些重要的事情:
- 导入该项目的基准的DLL:不能因为它不是一个COM组件。
- 使用LoadLibrary,FreeLibrary和GetProcAddress手动导入DLL:结果相同
- 在循环中调用我的导出函数:同样的事情,但DLL在分离之前连接了一段时间。
我想知道为什么我的DLL是分离的,我怎么能保持它连接的剩余的过程生活。
非常感谢
无法回答。 –
'我的DLL没有明显的原因被分离出来......你是否得到一个异常?你可以在这里发布吗?不知道你是什么意思的'detatched' ... – SwDevMan81
这不是一个例外,我只是在DLL附加/分离时调用MessageBox:'case DLL_PROCESS_ATTACH: \t \t ps.Connect(); MessageBox(NULL,“p_attach”,“IbeTheSee”,MB_ICONWARNING); \t case DLL_PROCESS_DETACH: \t \t ps.Disconnect(); \t \t MessageBox(NULL,“p_detach”,“IbeTheSee”,MB_ICONWARNING);' – patrickT87