1

我有这个问题,我已经处理了一段时间。一开始,我有两个带有非托管代码的 dll(比如说... dll_1、dll_2)和 c# 中的托管应用程序。我应该做的是在托管代码中获取指向 dll_1 中的非托管函数的指针,将其打包到结构中,然后将此结构作为参数发送给 dll_2 中的非托管函数。以前有没有人处理过这种问题?

4

1 回答 1

0

由于您不在托管代码中执行任何操作,但 DLL 位于同一进程中,因此只需使用IntPtr(根据平台自动为 32 位或 64 位)来传递非托管指针。当然,您也可以将 插入IntPtr到您的结构中,并在使用外部调用(例如[DllImport('YourDll')] static extern IntPtr ImportedFunction();)时将其用作参数或返回值。

但是,为了给您更多信息,有必要了解更多关于 DLL 调用及其数据结构的信息。

于 2010-01-18T14:25:37.407 回答