我在Windows CE上有一个.NET Compact Framework(CF)应用程序,它与本地的某些DLL文件进行交互,并且该应用程序有一些未知的行为和问题。如何在.NET Compact Framework中使用加载和卸载原生DLL文件?
现在,我使用的是直接调用使用函数[DllImport]属性,定义一个方法:
[DllImport("mynative.dll")]
private static extern void HelloWorld(byte[] arrName);
我想尝试释放加载的库,和网络研究表明我LoadLibrary
和FreeLibrary
。我如何找到教程或示例代码?
堆栈 溢出问题How to dynamically load and unload a native DLL file?是一个桌面示例,但它如何为Compact Framework做? 请注意,.NET Compact Framework没有'Marshal.GetFunctionPointerForDelegate'方法。
您不需要手动“释放”库。你现在在做什么就好了。 –
@Cody,但在5或6函数调用DLL后,我面临一些问题。例如,我的Windows窗体不会通过单击关闭按钮而不通过代码:this.Close()来关闭。这是惊人的,经过3/4次,这种行为不会出现。 – losingsleeep
然后你的DLL有内存泄漏或其他问题。你的问题是问关于错误的问题。您应该修复引起* *的任何事情,而不是。 FreeLibrary不会奇迹般地修复错误的代码。 –