一般来讲,好像都是在mydll.h中写入
_declspec(dllexport) int Max(int a,int b)
............这样的写法是用来导出Max函数,使调用mydll的程序可以调用Max。
但今天我看到一个dll(是一个系统级的钩子),但它在mydll.h中写的是import而不是export,这是何故?大概意思如下:
头文件
////////////////////////////////////////////////////////////////
//TaskKeyHook.h
//
#define DLLIMPORT __declspec(dllimport)DLLIMPORT BOOL DisableTaskKeys(BOOL bEnable, BOOL bBeep);
DLLIMPORT BOOL AreTaskKeysDisabled();
显然,他用的是_declspec(dllimport),而不是_declspec(dllexport),这是为什么?

解决方案 »

  1.   

    DLLIMPORT BOOL DisableTaskKeys(BOOL bEnable, BOOL bBeep);
    DLLIMPORT BOOL AreTaskKeysDisabled();定义的是导入函数,不是导出函数!
      

  2.   

    它应是用在需调用DLL的导出函数的文件里。
      

  3.   

    晕,定义的是DLLIMPORT 导入
      

  4.   

    这个程序在自己的DLL文件中,导入了别的函数。
      

  5.   

    ========原文=============
    显然,他用的是_declspec(dllimport),而不是_declspec(dllexport),这是为什么?
    ==========================================================================
    因为它要使用某dll中的DisableTaskKeys(BOOL bEnable, BOOL bBeep);
    AreTaskKeysDisabled();函数,当然要导入否则,编译时,会提示这两个函数未知!