平台调用小难题
一个c语言的dll中有例如CStringTestFunc的接口定义,
参数为CStringListTest 的引用
如下:
class CStringTest: CObject
{
public:
CString m_strIPAddress;
public:
CStringTest() {};
virtual ~CStringTest() {};
};
class CStringListTest : public CTypedPtrList <CObList, CStringTest*>
{
public:
CStringListTest() {};
virtual ~CStringListTest();
};
__declspec(dllexport) bool CStringTestFunc(CStringListTest& cstrList);
以上为示例代码!
目前我需要在C#中通过dll调用这个接口,需要对CStringTestFunc方法进行重新包装,我在C#中把CStringListTest 类尝试定义为List <CStringTest> 类型或者ArrayList类型,都发现无法传递值到CStringTestFunc中。换句话说,在C#这边,我构造了CStringTest对象,并附值给strIPAddress,然后add到CStringListTest 对象并作为参数调用CStringTestFunc,但发现到了调用dll的CStringTestFunc方法中,对应的strIPAddress并没有附上值。应该是c#这边对CStringListTest 封装不对,求教该怎么做?
------解决方案--------------------不会,帮顶!
------解决方案--------------------平台调用不要试图传递c++本身的类
------解决方案--------------------try to set up a bridge by C++.Net.
That means C++ <-> C++.Net <-> C#
------解决方案--------------------顶上