我想为我从非托管(C)代码中调用的OpenPop创建一个C#托管x86 DLL包装器。
我曾经使用NuGet "UnmanagedExports“包为其他产品做过这件事,它似乎工作得很好。
我尝试过使用新的包来做这件事,但是我一调用“OpenPop.net = new Pop3Client();”就得到了一个GPF。如果我删除所有对OpenPop的调用,DLL将正确加载和返回。
此外,我正在从一个try/catch结构中访问OpenPop,但它仍然会因为GPF而失败(而不是捕获这个错误)。
我安装了最新的OpenPop.net包v2.0.6.1120,我的目标是.net v4.5.2 (我也尝试了v4.0,没有区别)。
OpenPop.net可以像这样与UnmanagedExports包一起使用吗?如果是这样的话,有什么建议可以让我调试一下吗?
谢谢!
(我意识到这是自由软件,所以不需要支持,所以如果需要的话,我非常乐意为支持付费)
发布于 2017-05-13 05:45:58
我找到问题了..。我没有将OpenPop.dll复制到加载DLL的应用程序文件夹中。一旦文件可用,GPF就不再发生。太糟糕了,这不能被C#异常处理程序捕获。
https://stackoverflow.com/questions/43945363
复制相似问题