Использование kernel32 в .Net - PullRequest
3 голосов
/ 16 марта 2011

Вопрос для SO сообщества.У меня есть библиотека C ++ с полным исходным кодом, и я могу скомпилировать ее в 32- и 64-битном режиме.Однако для вызова кода из .NET я должен выбрать 32- или 64-разрядную версию, поэтому мое приложение должно быть 32- или 64-разрядной.Я решил, что мне, возможно, придется смириться с этой проблемой ... но я наткнулся на то, что дает мне надежду.Я заметил, что я могу ссылаться на «kernel32.dll» в функции extern, и программа прекрасно работает как в 32-, так и в 64-битном режиме.Кто-нибудь знает, как это делается?

Спасибо!

1 Ответ

3 голосов
/ 16 марта 2011

Это особенность Windows в Windows 64 (WOW64): перенаправитель файловой системы

Вы не можете использовать его для своих собственных библиотек, потому что это только для папки System32. (Не стоит НЕ даже подумать о том, чтобы поместить ваши DLL в System32.)

Использование SetDllDirectory может помочь, но я не уверен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...