Re: не могу вытащить string из управляемого кода
От: sect0id  
Дата: 31.01.11 07:12
Оценка:
Здравствуйте, sect0id, Вы писали:

Спасибо за ответы господа, буду пробовать!


S>Здравствуйте! столкнулся с проблемой вытаскивания строки из c# в с++...


S>есть код на c#


S>namespace MyInterop

S>{
S> public interface IMyDotNetInterface2
S> {
S> int Add(int Number1, int Number2);
S> [return: MarshalAs(UnmanagedType.BStr)] string say();

S> public class MyDotNetClass : IMyDotNetInterface2

S> {

S> public string say()

S> {
S> return "OK";
S> }

S> public int Add(int Number1,int Number2)

S> {
S> return Number1+Number2;
S> }
S> }
S> }
S>}

S>не могу вытащить "OK" из функции say();

S>пробовал так:
S>Код C++

S>myfunc(){

S> CoInitialize(NULL);
S> MyInterop::IMyDotNetInterface2Ptr pDotNetCOMPtr2(__uuidof(MyDotNetClass));

S> long lResult = 0;

S> pDotNetCOMPtr2->Add(5,10, &lResult);
S> myfile<<"\nCOM5="<<lResult; //тут всё ок

S> BSTR test_lResult = SysAllocString(L"");

S> pDotNetCOMPtr2->say(&test_lResult);
S> myfile<<"\nCOM6="<<test_lResult; //тут выводит "00070F84"
S>}

S>подскажите пожалуйста как вытащить string? буду очень благодарен, спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.