1.编译idl 文件,生成*_i.h、*_i.c、*_p.c、dlldata.c 和 *ps.def 文件。
*.h为接口说明头文件;
*_p.c为接口代理和存根的实现文件;
*_i.c为定义所有GUID描述符的文件;
dlldata.c包含代理/存根程序的入口函数及类厂所需的数据结构。
如果没有.def文件,也可以自己编辑一个。格式如下:
LIBRARY "testProxy.dll"
EXPORTS
DllGetClassObject @1 PRIVATE
DllCanUnloadNow @2 PRIVATE
GetProxyDllInfo @3 PRIVATE
DllRegisterServer @4 PRIVATE
DllUnregisterServer @5 PRIVATE
2. 创建一个新的win32应用程序:
程序类型为dll:
3. 加入上述五个文件;
4.设置工程编译属性:
1)在Preprocessor Definitions 中加入:REGISTER_PROXY_DLL
2)在Linker->Input->Module Definition file指定模块定义文件路径:*ps.def;
3)在 Linker->Input->Additional Dependencies中加入:rpcrt4.lib uiid.lib
5.编译,如果出现如下错误:
fatal error C1189: #error : You need a Windows 2000 or later to run this stub because it uses these features:
在Preprocessor Definitions加入:_WIN32_WINNT=0x0500