Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++;调用返回类对象的C#函数_C#_C++_Regasm - Fatal编程技术网

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#函数,如下所

我有一门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#函数,如下所示:

  virtual HRESULT __stdcall RequestInfo (
    /*[out,retval]*/ struct _RequestInfo * * pRetVal ) = 0;
< >我把C++的C++函数称为:

_RequestInfo *info;
pICS->RequestInfo(&info);
调用该函数且未生成错误;然而:

  • 我不知道是否正确定义了info变量
  • 我不知道如何读取带有C#函数填充的数据的info变量

  • 救命啊

    到目前为止看起来不错。您可以查看生成的TLH,以查看CuffEngEnter类在C++方面的外观。可能会使用类似info->GetName(&name)的东西;名称将是一个BSTR类型。您使用的#import指令还生成了一个TLI文件,以便于编写。以及负责内存管理的智能指针,
    \u请求InfoPtr
    。无法真正忽略调用失败时引发的异常。这些自动生成的声明和支持类的基本登录页。问题是我(在TLI文件中)定义了内联_bstr_t IRequestInfo::Getbarcode(),但RequestInfo的返回值是_RequestInfoPtr
    _RequestInfo *info;
    pICS->RequestInfo(&info);