Re: Как вызвать из C# объект в C++/CLI managed/unmanaged?
От: Ростислав Дмитриевич Кудряшов Россия  
Дата: 17.12.10 07:52
Оценка:
Здравствуйте, Ростислав Дмитриевич Кудряшов, Вы писали:

РДК>Моя попытка. Использую MS Visual Studio 2008 SP1.

РДК>После компиляции/компоновки запуск Main.exe даёт FileNotFoundException (из HRESULT: 0x8007007E) в TestUnmanaged.Main.

РДК>// cl /clr /LN Sub.cpp

РДК>using namespace System;
РДК>#pragma unmanaged
РДК>void Dummy () {;}
РДК>#pragma managed
РДК>namespace MySubSpace {
РДК> ref class Sub1 {
РДК> public:
РДК> void SaySub1 (String ^name) {
РДК> Console::WriteLine ("Sub1 says : {0}", name);
РДК> Dummy ();
РДК> }
РДК> };
РДК>}

РДК>// csc Main.cs /addmodule:Sub.netmodule /platform:x86

РДК>using System;
РДК>using MySubSpace;

РДК>public class TestUnmanaged {

РДК> public static void Main () {
РДК> Sub1 s1 = new Sub1();
РДК> s1.SaySub1 ("from Main");
РДК> }
РДК>}

РДК>Если закомментировать в Sub.cpp четыре строки с pragma и Dummy и применить cl /clr:safe /LN Sub.cpp, то Main.exe выполняется успешно.



Проблема решена в MS Visual Studio 2010 с ключом /unsafe компилятора csc
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.