Как отправить указатели неуправляемых функций из dll в другую неуправляемую функцию в другой dll через управляемый код? - PullRequest
1 голос
/ 18 января 2010

У меня есть эта проблема, с которой я сталкиваюсь уже некоторое время. В начале у меня есть два dll с неуправляемым кодом (скажем ... dll_1, dll_2) и управляемым приложением в c #. Что я должен сделать, это получить указатели на неуправляемые функции в dll_1 в управляемом коде, упаковать его в структуру и отправить эту структуру в качестве аргумента неуправляемой функции в dll_2. Кто-нибудь имел дело с такой проблемой раньше, может быть?

1 Ответ

0 голосов
/ 18 января 2010

Поскольку вы ничего не делаете в управляемом коде, но библиотеки DLL работают в одном и том же процессе, просто используйте IntPtr (автоматически 32 или 64 бита в зависимости от платформы), чтобы передать неуправляемый указатель. Конечно, вы также можете вставить IntPtr в вашу структуру и использовать его в качестве аргумента или возвращаемого значения при использовании внешнего вызова (например, [DllImport('YourDll')] static extern IntPtr ImportedFunction();).

Однако, чтобы получить больше информации, необходимо знать больше о вызовах DLL и их структурах данных.

...