我在使用 DotNet1.1 时遇到了 C# 的这个问题
问题是这样的。我有一个非托管 dll,它有一个带有函数指针(以及其他参数)的函数。当我在 C# 代码中声明 DLLImport 时,我传递了一个委托。但是 C# 中的委托具有stdcall
调用约定,而非托管函数需要一个cdecl
函数指针。因此,我天真的方法导致了崩溃。然后我发现了以下内容:http://www.codeproject.com/KB/cs/cdeclcallback.aspx有人编写了一个出色的库,据我所知,MSIL-hacking 可以更改委托的调用约定。事情进展顺利,直到...
我迁移到 VS2008 和新版本的 .NET。在此版本下,上述库不起作用。我并不是真正的 C# 或 .NET 专家,而且说实话,我几乎不了解他的库是做什么的(尽管它是开源的),所以我什至不想尝试将其适应新的 .NET。但是,我希望更新版本的 C# 可以为我的问题提供更好的解决方案。
所以,SO专家,请帮我解决我的臀部疼痛:)