【发布时间】:2015-05-26 13:15:24
【问题描述】:
我有一个商业程序的 C++ API 的 C++\CLI 包装器。 某个包装函数如下所示:
int ReleaseObject(WDataObject^ object) {
return (m_api->ReleaseObject(object->m_object));
};
在之前版本的 API 中,C++ 端是:
m_api->ReleaseObject(const api:DataObject *object)
并且在当前的 API 版本中,该函数已更改为:
m_api->ReleaseObject(const api:DataObject *&object)
我对C++\CLI一无所知,而且我的C++知识非常基础,我不知道如何修改包装函数以使其编译。
我想知道如何根据 C++ API 的期望修改包装器 c++\CLI 函数以通过引用传递对象。
编辑:
编译时出错:
Error 3 error C2664: 'int api::Api::ReleaseObject(api::DataObject *&)' : cannot convert argument 1 from 'api::DataObject *' to 'api::DataObject *&' ...\pf_api_test - 15.2.2\libs\digapiwrapper15.1_64bit\digApiWrapper.h 851 1 digApiWrapper
编辑 2:
[SerializableAttribute]
public ref class WDataObject {
public:
api::DataObject* m_object;
WApi^ t_api;
String^ Name;
int Class;
String^ key;
WDataObject(api::DataObject* obj) { m_object = obj; };
~WDataObject();
/*HERE GOES ALL THE FUNCTIONS WHICH I'M NOT SURE IF THEY ARE RELEVANT*/
}
【问题讨论】:
-
它现在是否不编译,或者你只是在猜测?如果是这样,请指定 exact 错误。
-
现在无法编译,请看编辑。
-
谁能解释一下
^在WDataObject^是什么? -
@SantiPeñate-Vera 你能告诉你
WDataObject的声明吗?我不知道没有它我们有足够的信息。
标签: .net c++-cli interop native