如何生成代理存根dll

    技术2022-05-11  115

    1.编译idl 文件,生成*_i.h*_i.c*_p.cdlldata.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

     


    最新回复(0)