когда я пытаюсь вызвать код c # из c ++, я следовал инструкциям из этой статьи
http://support.microsoft.com/kb/828736
часть моего c #:
[Guid("6A2E9B00-C435-48f8-AEF1-747E9F39E77A")]
public interface IGameHelper
{
void getInfo(out string result);
}
public class GameHelper : IGameHelper
{
void getInfo(out string result)
{
result = new StringBuilder().Append("Hello").ToString();
}
}
частьмоего кода на C ++:
#import "../lst/bin/Release/LST.tlb" named_guids raw_interfaces_only
using namespace LST;
using namespace std;
...
HRESULT hr = CoInitialize(NULL);
IGameHelperPtr pIGame(__uuidof(GameHelper));
BSTR ha = SysAllocString(NULL);
pIGame->GetInfo(&ha);
wprintf(_T(" %s"),ha);
SysFreeString(ha);
, но я просто не могу получить строковое значение результата, оно прекрасно работает, когда я пытаюсь получить целочисленные результаты, но не строковое.
Я не знаю COM оченьмного.ПОМОГИТЕ МНЕ, ПОЖАЛУЙСТА.Спасибо.