我现在使用的是一个外设的动态链接库,我将其头文件加入到了我的工程中,但是其中的一个函数跟amstream.h中的一个变量冲突,提示重复定义,该如何解决这个问题呢

解决方案 »

  1.   

    可以不用头文件,而直接GetProcAddress直接取函数地址。
    或者为DLL的头文件加一个namespace不知可不可以?
      

  2.   

    GetProcAddress取函数也需要h文件的
    看是否namespace等来区分
      

  3.   

    如果你有那个动态链接库的函数详细描述。
    那么直接typedef定义函数指针,然后LoadLibrary加载DLL,再用GetProcAddress取函数出来。
      

  4.   

    动态加载.还有楼上说的Namespace也是不错的方法
      

  5.   

    动态加载,把DLL中的函数换个名字
      

  6.   

    例如:
    typedef int (CALLBACK* lpfnAdd)(int,int);hDll = LoadLibrary("*.dll");
    lpfnAdd a = GetProcessAddress(hDll,"Add");//获得dll的地址
    (*a)(1,2);//调用Add
    FreeLibrary(hDLL);需要对每一个函数这样处理,load/free只要一次