本帖最后由 mycoolx 于 2014-10-30 09:25:48 编辑

解决方案 »

  1.   

    #include <IEMapi.h>
    #pragma comment ( lib, "Iepmapi.lib")
      

  2.   

    请像我上面创建一个简单的程序项目,能够调用测试编译生成程序。
    上面那样是可以编译cpp文件的,但是生成不了exe程序。提示连接出错,实在不能理解。请测试通过的,朋友,告知一下。
      

  3.   

    补充: 
    IECreateFile这个文件要 WindowsSDK 7.0以上才有好像。至少我在VS2008中使用的是WindowsSDK6.0的,是没有这个API的。  但是使用iepmapi.lib库中的如  IESaveFile这样的API是能正常连接生成 exe可执行文件的。
      

  4.   

    不要意思我没有测试过。
    刚刚看了这个 lib.
    因为 lib 中函数的定义为 __stdcall,而且 第一个参数的 wchar_t 不是内置类型。你可以自己定义这个函数。
    如果还需要其他函数也可以修改这个文件的定义。
    1、修改 wchar_t 的定义为 /Zc:wchar_t-
    2、修改 #include 中函数的调用约定为 __stdcall.
      

  5.   

    我怕修改, /Zc:wchar_t- 会破坏其他工程,或工程以外的其他lib引用。
    所以没改变这个编译项。谢谢,我用重新声明这个函数为 HANDL __stdcall IECreateFile(const unsigned short*,DWORD...)来解决它。
      

  6.   

    如果我需要使用这种不一致的函数。
    我会使用宏定义来解决这个问题。#define LPCWSTR unsigned short int const *
    #define IECreateFile __stdcall IECreateFile // 使得定义的 IECreateFile 变为 __stdcall
    #include <IEPMapi.h>
    #undef IECreateFile
    #undef LPCWSTR
    但是我还是比较喜欢使用单独的文件来包装。并且修改编译方式,以保证细节的正确性。
    这个问题,我最早在 Firefox 浏览器的插件上遇到过。她们的 wchar_t 就不是内置类型。