DLL开发是windows编程中经常用到的一种技术。从DLL中可以导出函数、变量、还有类。这个通过VS的win32应用程序向导生成一个win32DLL(附加选项选中【导出符号】),生成的代码有相应示例。但是,在实际开发过程中,我们会发现从DLL中导出类是件不太靠谱的事情。原因可能是DLL和调用DLL的应用程序是用不同编译器或者编译器的不同版本,也可能是DLL和应用程序使用的内存堆不一样。总之,使用DLL传递对象不是一件稳定的事情。
再说,我们也没见过Win32API和COM接口直接传递对象出来不是?我们能确定可以稳定传递的只有基本数据类型。
但是有时候,我们又需要直接使用DLL里面的对象,怎么办?这中情况下,可以进行一些转换,通过传递指针的方式来使用DLL里的对象。毕竟指针也是基本数据类型。这也是COM接口传递对象的方式。接口的具体实现也有不同的方式,这里就来举个例,实现一种。
首先,在任意现有的解决方案中添加一个WIN32 DLL项目。项目名称就叫w3 。如图1、图2。