2013-02-21 1 views
1

Я пытаюсь создать роль рабочего для загрузки данных с сервера RETS с помощью librets.net. librets.net - это обертка для библиотек C++. Я пробовал как 32-битную, так и 64-битную версию и после этого не имел успеха. Я все еще получаю BadImageFormatExceptionИспользование librets (PInvoke) в роли рабочего

Как я могу решить эту проблему?

ответ

2

BadImageFormatExceptions - это почти всегда 32-разрядная/64-битная несовместимость; Если бы я был игроком ставок, я бы сказал, что вы привязываете неверную версию на основе вашей конфигурации Platform в Visual Studio.

  • Выбор «Любой процессор» приведет к сборке, которая будет JITted в 64-битной версии при загрузке в 64 битного процесса и 32 разрядной версии при загрузке в 32 бит процесса

  • Выбор «x86» всегда будет приводить к 32 разрядной сборки

Я готов поспорить, у вас есть:

  • «Любой процессор» выбран
  • 64-битный компьютер
  • 32-разрядная версия C++ библиотеки

Попробуйте переключить все к 32 бит первый; x86 для платформы, используйте 32-битную версию библиотеки и т. Д.

+0

выиграл ставку :) так отметьте, что ответил – ZafarYousafi

+0

Другое дело: http://www.crt.realtors.org/projects/rets/librets/downloads/предоставить тип. Это время я пытался с Mingw64, и он работает. другая 64-битная ошибка. В чем разница между этими двумя типами сборки? – ZafarYousafi

+0

Не копаясь в деталях (не знакомы с самой библиотекой), я буду откровенно гадать ... возможно, из-за того, как Mingw64 структурирует выходные двоичные файлы? – JerKimball