powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / dllimport C++ library
6 сообщений из 6, страница 1 из 1
dllimport C++ library
    #38918035
saxix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую всех.
Требуется дернуть функцию из библиотеки С++. Выбрал простейшую:
Код: plaintext
1.
extern "C" LONG __stdcall GetResponse(void);


В C# реализовал:
Код: c#
1.
[DllImport("test.dll", SetLastError = true, CharSet = CharSet.Auto)] public static extern Int32 GetResponse();


Игрался с разными вариациями в атрибуте.
Компилирую под x86, вызываю - You may be attempting to load a 64-bit assembly into a 32-bit process
Компилирую под x64(или Any CPU), вызываю - BadImageException.
Автор DLL утверждает, что собрана она по x86. Что можно сделать?
...
Рейтинг: 0 / 0
dllimport C++ library
    #38918041
saxix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ответ сам нашел. Дергал через NUnit, собранный по x64. Надо было юзать NUnit x86.
...
Рейтинг: 0 / 0
dllimport C++ library
    #38918044
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CallingConvention=CallingConvention.StdCall
попробуйте http://clrinterop.codeplex.com/releases/view/14120
даже интересно...
...
Рейтинг: 0 / 0
dllimport C++ library
    #38918047
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
затупил... ексепшн не прочитал...
...
Рейтинг: 0 / 0
dllimport C++ library
    #38918057
saxix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buserCallingConvention=CallingConvention.StdCall
попробуйте http://clrinterop.codeplex.com/releases/view/14120
даже интересно...
Это я тоже пробовал. Но проблема решена.
...
Рейтинг: 0 / 0
dllimport C++ library
    #38918074
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На всякий случай на будущее, если кому понадобится. Когда на 64-bit платформе подключается dll, скомпиленная под 32-bit и выбрасывается BadImageException, то нужно поменять Target Framework проекта с x64 на x86.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / dllimport C++ library
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]