C++;调用返回类对象的C#函数
我有一门C语言课# 我正在从C调用一个C函数++C++;调用返回类对象的C#函数,c#,c++,regasm,C#,C++,Regasm,我有一门C语言课# 我正在从C调用一个C函数++ TResult.RequestInfo RequestInfo(); 使用ReGASM创建了一个TLB文件,在C++编译时得到一个TLH文件。 < C++ > RequestInfo在生成的TLH文件中显示如下: struct __declspec(uuid("e2e15930-fd1a-31de-a166-bf330e327677")) /* dual interface */ _RequestInfo; 以及TLH文件中的C#函数,如下所
TResult.RequestInfo RequestInfo();
使用ReGASM创建了一个TLB文件,在C++编译时得到一个TLH文件。 < C++ > RequestInfo在生成的TLH文件中显示如下:
struct __declspec(uuid("e2e15930-fd1a-31de-a166-bf330e327677"))
/* dual interface */ _RequestInfo;
以及TLH文件中的C#函数,如下所示:
virtual HRESULT __stdcall RequestInfo (
/*[out,retval]*/ struct _RequestInfo * * pRetVal ) = 0;
< >我把C++的C++函数称为:
_RequestInfo *info;
pICS->RequestInfo(&info);
调用该函数且未生成错误;然而:
救命啊 到目前为止看起来不错。您可以查看生成的TLH,以查看CuffEngEnter类在C++方面的外观。可能会使用类似info->GetName(&name)的东西;名称将是一个BSTR类型。您使用的#import指令还生成了一个TLI文件,以便于编写。以及负责内存管理的智能指针,
\u请求InfoPtr
。无法真正忽略调用失败时引发的异常。这些自动生成的声明和支持类的基本登录页。问题是我(在TLI文件中)定义了内联_bstr_t IRequestInfo::Getbarcode(),但RequestInfo的返回值是_RequestInfoPtr
_RequestInfo *info;
pICS->RequestInfo(&info);