Win16下的系统,包含多个EXE和DLL。现在要移植DLL到Win32下,碰到这样的问题。Win16下的DLL里包含了很多全局变量,调用DLL的DLL或者EXE通过DLL的函数取得和使用了那些全局变量的值或指针。更要命的是某些DLL和EXE保存了这些指针,动态使用。全局变量包含下面3种
1. 一般变量 (#pragma data_seg方法可以实现移植)
2. 结构体 (#pragma data_seg方法可以实现移植)
3. 结构体指针 (内存映射文件,可以实现移植)4. 类对象,类对象指针 -> 无法简单方法移植,问题所在~!!!
 原因:
1. 类里面又包含了类对象和指针型变量,win32下进程间无法无法共享动态地址
2. 类的方法里包含了new, 这部分内存无法在进程调用中将通过指针共享。现在的工作是移植,不能破坏系统的基本框架,只能动手术做小动作。请大家给些建议和指导。1.如何使得被多进程调用的DLL,在多个进程调用里共享动态类对象?
2.能否通过将EXE封装到DLL里面,使EXE唯一,把问题归于多线程调用DLL,在同一个数据段里,这样就不用改造Win16位的DLL地址指针共享模式?如何将EXE封装到DLL里面又如何调用呢?变为线程后是不是要为每个EXE做一个消息队列呢?
3.有没有特定技术解决这个移植问题?或者其他变通的方法。特急,先谢谢各位了。