не могу вытащить string из управляемого кода
|
От: |
sect0id
|
|
| Дата: | 28.01.11 08:00 |
|
Оценка: |
|
Здравствуйте! столкнулся с проблемой вытаскивания строки из c# в с++...
есть код на c#
namespace MyInterop
{
public interface IMyDotNetInterface2
{
int Add(int Number1, int Number2);
[return: MarshalAs(UnmanagedType.BStr)] string say();
public class MyDotNetClass : IMyDotNetInterface2
{
public string say()
{
return "OK";
}
public int Add(int Number1,int Number2)
{
return Number1+Number2;
}
}
}
}
не могу вытащить "OK" из функции say();
пробовал так:
Код C++
myfunc(){
CoInitialize(NULL);
MyInterop::IMyDotNetInterface2Ptr pDotNetCOMPtr2(__uuidof(MyDotNetClass));
long lResult = 0;
pDotNetCOMPtr2->Add(5,10, &lResult);
myfile<<"\nCOM5="<<lResult; //тут всё ок
BSTR test_lResult = SysAllocString(L"");
pDotNetCOMPtr2->say(&test_lResult);
myfile<<"\nCOM6="<<test_lResult; //тут выводит "00070F84"
}
подскажите пожалуйста как вытащить string? буду очень благодарен, спасибо.
Пока на собственное сообщение не было ответов, его можно удалить.