Проблемы запуска исполняемых файлов Visual Studio с моно - PullRequest
1 голос
/ 17 мая 2011

Я пытаюсь работать с исполняемыми файлами Mono, созданными в Visual Studio 2010. В VS 2010 заданы следующие параметры: -c ++ проект -cil pure

Моя конечная цель - собрать тесты Parsec с использованием Visual Studio 2010затем запустите исполняемые файлы с mono как в Windows, так и в Linux.

К настоящему времени я создал простой проект на C ++, включающий только printf.Исполняемый файл работает нормально с моно под Windows, в то время как он возвращает мне много проблем под Linux

вот что я получаю:

** (thread.exe:1424): WARNING **: Missing method .ctor in assembly /home/chezz/Scrivania/thread.exe, type System.Runtime.CompilerServices.FixedAddressValueTypeAttribute

** (thread.exe:1424): WARNING **: Can't find custom attr constructor image: /home/chezz/Scrivania/thread.exe mtoken: 0x0a00000d

Unhandled Exception: System.TypeInitializationException: An exception was thrown by the type initializer for <Module> ---> <CrtImplementationDetails>.ModuleLoadException: The C++ module failed to load.
 ---> System.MissingMethodException: Method not found: 'System.AppDomain.IsDefaultAppDomain'.
  at <Module>.<CrtImplementationDetails>.LanguageSupport.Initialize (<CrtImplementationDetails>.LanguageSupport* ) [0x00000] 
  --- End of inner exception stack trace ---
  at <Module>.<CrtImplementationDetails>.ThrowModuleLoadException (System.String errorMessage, System.Exception innerException) [0x00000] 
  at <Module>.<CrtImplementationDetails>.LanguageSupport.Initialize (<CrtImplementationDetails>.LanguageSupport* ) [0x00000] 
  at <Module>..cctor () [0x00000] 
  --- End of inner exception stack trace ---

Есть идеи?Спасибо Андреа

Ответы [ 2 ]

0 голосов
/ 20 мая 2011

Полагаю, что чтение Mono-C ++ может помочь вам в вашей проблеме.Посмотрите внизу о поддержке C ++ и проблеме с запуском кода C ++.

0 голосов
/ 17 мая 2011

Я предполагаю, что код, который генерирует компилятор Visual C ++, будет использовать MSVCRT, если вы вызываете функции, находящиеся в среде выполнения C (т.е. не в .NET, например printf). Чтобы иметь возможность работать в Mono и в Linux, вы должны использовать только классы .NET Framework (например, System.Console.WriteLine для вывода на консоль вместо printf).

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