C++代码里边如果加上了属性编程,生成的就是托管代码么
C++代码里面如果加上了属性编程,生成的就是托管代码么?
如下,我在网上看到msdn的例子程序,我自己测试了一下可以编译运行的:
请问,这里加上的[export]有什么作用么? SizedValue2里面的[switch_type(char), switch_is(kind)]对于编译的结果有什么影响? 是不是加上了以后,生成一种特殊形式的结构体是可以给com组件或者.net调用的,也就是说内存对象模型会有改变来适应com/.net?
不知道我的猜测和实际情况的出入在哪里。还请大侠斧正!
------解决方案--------------------
属性编程,ms已经不提倡了,
并且加了属性编程和是不是托管的没关系
如下,我在网上看到msdn的例子程序,我自己测试了一下可以编译运行的:
[export]
struct SizedValue2 {
[switch_type(char), switch_is(kind)] union {
[case(1), string]
wchar_t* wval;
[default, string]
char* val;
};
char kind;
};
[module(name="ATLFIRELib")];
int _tmain(int argc, _TCHAR* argv[])
{
SizedValue2 v;
v.kind=1;
v.wval=L"hello";
return 0;
}
请问,这里加上的[export]有什么作用么? SizedValue2里面的[switch_type(char), switch_is(kind)]对于编译的结果有什么影响? 是不是加上了以后,生成一种特殊形式的结构体是可以给com组件或者.net调用的,也就是说内存对象模型会有改变来适应com/.net?
不知道我的猜测和实际情况的出入在哪里。还请大侠斧正!
------解决方案--------------------
属性编程,ms已经不提倡了,
并且加了属性编程和是不是托管的没关系