Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有这个问题,我已经处理了一段时间。一开始,我有两个带有非托管代码的 dll(比如说... dll_1、dll_2)和 c# 中的托管应用程序。我应该做的是在托管代码中获取指向 dll_1 中的非托管函数的指针,将其打包到结构中,然后将此结构作为参数发送给 dll_2 中的非托管函数。以前有没有人处理过这种问题?
由于您不在托管代码中执行任何操作,但 DLL 位于同一进程中,因此只需使用IntPtr(根据平台自动为 32 位或 64 位)来传递非托管指针。当然,您也可以将 插入IntPtr到您的结构中,并在使用外部调用(例如[DllImport('YourDll')] static extern IntPtr ImportedFunction();)时将其用作参数或返回值。
IntPtr
[DllImport('YourDll')] static extern IntPtr ImportedFunction();
但是,为了给您更多信息,有必要了解更多关于 DLL 调用及其数据结构的信息。