dll中的共享段变量可以有类对象吗?如果有,类对象需要初始化吗?如果需要,怎么初始化
dll中的共享段变量可以有类对象吗?如果有,类对象需要初始化吗?如果需要,如何初始化?
如题,请各位大虾帮忙解决,现在遇到了这个问题。
------解决方案--------------------
这要看类里面有什么成员
------解决方案--------------------
我觉得完全可以,至于用不用初始化以及何时初始化,就看你的逻辑需要了。
你可以在dll入口部分进行初始化啊。
------解决方案--------------------
为何完全可以?应该是很可能不可以。
如果有成员是不共享的就不行,包括指针,句柄,包含指针和句柄的其他对象,比如你就不能把char*以及string类的对象放里面
如果要共享,你只能包含int char这样的,要放指针只能用based pointer,但这是编译器扩展
------解决方案--------------------
如果全是成员函数,干脆用namespace
------解决方案--------------------
晕,你想这样在 dll 用类,还不如用 WM_COPYDATA,
不能这样用类!!!
------解决方案--------------------
可以简单的说:不可以。跨进程调用本来就是COM出现的目的之一,所以COM用不着用共享段,
COM的机制跟DLL有相似之处,DLL是可以由多个程序共享使用的,COM也是。
共享段只适合传递简单变量,不过很多时候这就够了。
如题,请各位大虾帮忙解决,现在遇到了这个问题。
------解决方案--------------------
这要看类里面有什么成员
------解决方案--------------------
我觉得完全可以,至于用不用初始化以及何时初始化,就看你的逻辑需要了。
你可以在dll入口部分进行初始化啊。
------解决方案--------------------
为何完全可以?应该是很可能不可以。
如果有成员是不共享的就不行,包括指针,句柄,包含指针和句柄的其他对象,比如你就不能把char*以及string类的对象放里面
如果要共享,你只能包含int char这样的,要放指针只能用based pointer,但这是编译器扩展
------解决方案--------------------
如果全是成员函数,干脆用namespace
------解决方案--------------------
晕,你想这样在 dll 用类,还不如用 WM_COPYDATA,
不能这样用类!!!
------解决方案--------------------
可以简单的说:不可以。跨进程调用本来就是COM出现的目的之一,所以COM用不着用共享段,
COM的机制跟DLL有相似之处,DLL是可以由多个程序共享使用的,COM也是。
共享段只适合传递简单变量,不过很多时候这就够了。