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? буду очень благодарен, спасибо.
Пока на собственное сообщение не было ответов, его можно удалить.