Re: Как вызвать из C# объект в C++/CLI managed/unmanaged?
Здравствуйте, Ростислав Дмитриевич Кудряшов, Вы писали:
РДК>Моя попытка. Использую 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
Пока на собственное сообщение не было ответов, его можно удалить.