做个库文件,需要根据外部函数是否存在决定是否调用该外部函数。

解决方案 »

  1.   

    动态显式连接库://声明函数指针
    int (*pDiaoYong)(int);//载入库
    HMODULE hDLL = ::LoadLibrary("myDll.dll");
    ASSERT(hDLL);
    //找到被调用函数的地址
    FARPROC pProc = ::GetProcAddress(hDLL,"TestOut");//将地址赋给函数指针,pProc前面括号中进行了一个强制类型转换,将pProc转换成与本函数参数、返回类型一致的函数指针。
    pDiaoYong = (int (*)(int))pProc;//如果该函数不存在,不调用,存在,调用。
    if(pProc)
        int g = (*pDiaoYong)(m_iParam);
      

  2.   

    不好意思:
    ASSERT(hDLL);
    一行应去除。
      

  3.   

    我做的库文件需要根据用户的情况调用一些函数,假如用户程序中存在这个函数,就调用它,否则就当作一个空操作nop。这在32位单片机ARM中有函数修饰符_weak,不知道C语言或者C++语言中有没有。
      

  4.   

    静态库肯定不行,连接都过不去。
    动态库可以用LoadLibrary