我有这个问题,我已经处理了一段时间了。一开始,我有两个带有非托管代码的dll(让我们说... dll_1,dll_2)并在c#中管理应用程序。我应该做的是在托管代码中获取指向dll_1中的非托管函数的指针,将其打包到结构中,并将此结构作为参数发送到dll_2中的非托管函数。有没有人可能在此之前处理过这类问题?
答案 0 :(得分:0)
由于您在托管代码中没有执行任何操作,但DLL存在于同一进程中,因此只需使用IntPtr
(根据平台自动为32位或64位)来传递非托管指针。您当然也可以将IntPtr
插入到您的结构中,并在使用外部调用时将其用作参数或返回值(例如[DllImport('YourDll')] static extern IntPtr ImportedFunction();
)。
但是,为了向您提供更多信息,有必要了解有关DLL调用及其数据结构的更多信息。