template<class T>
public class Class1
{
public:
Class1(){
}
String^ Load1(){
return "s1";
}
};
template<class T>
public class Class2
{
public:
Class2(){
}
String^ Load2(){
return "s2";
}
};
public class Class3 : public Class1<Class3>,
public Class2<Class3>
{
public:
Class3(void);
~Class3(void);
public:
void XmlSerializeIn(XmlNode^ p){
XmlElement^ pThis = p->OwnerDocument->CreateElement("Test");
}
};
这个类的关键在于我要用到C++的多重继承,这样我就可以像ATL/WTL那样来用模板实现按需定制派生类的功能,.NET由于不支持多重继承,当继承的特性很多时基类要么很庞大,以至派生类根本用不着基类的功能或是与基类的功能相冲突。所以我想试试这种方式。
现在的问题是这个程序被编译成了DLL,用/clr参数,现在我如何才能在另个一个C++/CLI工程里访问我写的这些类呢?我试图用dllexport,但是上述的XmlSerializeIn函数被提示不能被export,因为它是__clrcall的,我并不要求这个库完全兼容.net CLR,只要能被另一个C++/CLI的程序识别即可,谁知道应该如何解决这个问题。
5 个解决方案
#1
写成.net类库不是很容易被net程序调用?
#2
不晓滴。。友情帮顶
#3
write managed wrapper classes
#4
用VC++.NET
#5
似乎是不能完成的任务。建议放弃使用.net的库,用C++库一样可以完成。
#1
写成.net类库不是很容易被net程序调用?
#2
不晓滴。。友情帮顶
#3
write managed wrapper classes
#4
用VC++.NET
#5
似乎是不能完成的任务。建议放弃使用.net的库,用C++库一样可以完成。