zoukankan      html  css  js  c++  java
  • VS2019 静态/动态库导入导出代码片段【snippet】

    VS不愧是宇宙最强大的IDE咯,定义snippet以后,妈妈再也不怕我敲代码敲坏键盘了就可以很方便的生成并转移一个,而不必修改头文件
    不过这还需要在项目输出上做做修改,规则差不多是$name$ [d] [_x64] .lib|dll,比如mySock.libmySock.dll

    静态库的导入导出

    #ifndef _LIB	// 静态库宏
    #ifdef _WIN64
    
    #ifdef _DEBUG
    #pragma comment(lib,"lib/MY_LIBd_x64.lib")
    #else
    #pragma comment(lib,"lib/MY_LIB_x64.lib")
    #endif	// _DEBUG
    
    #else
    
    #ifdef _DEBUG
    #pragma comment(lib,"lib/MY_LIBd.lib")
    #else
    #pragma comment(lib,"lib/MY_LIB.lib")
    #endif	// _DEBUG
    
    #endif	// _WIN64
    
    #endif	// MY_LIB_EXPORTS
    

    LIBEXPORT

    LIB

    动态库的导入导出

    #ifdef MY_DLL_EXPORTS	// DLL导出宏
    #define MY_DLL_API __declspec(dllexport)	// 导出使用
    #else
    #define MY_DLL_API __declspec(dllimport)	// 导入使用
    #ifdef _WIN64
    
    #ifdef _DEBUG
    #pragma comment(lib,"lib/MY_DLLd_x64.lib")
    #else
    #pragma comment(lib,"lib/MY_DLL_x64.lib")
    #endif	// _DEBUG
    
    #else
    
    #ifdef _DEBUG
    #pragma comment(lib,"lib/MY_DLLd.lib")
    #else
    #pragma comment(lib,"lib/MY_DLL.lib")
    #endif	// _DEBUG
    
    #endif	// _WIN64
    
    #endif	// MY_DLL_EXPORTS
    

    动态库的函数定义前加上MY_DLL_API就可以实现导出或导入

    DLLEXPORT

    DLL

    再进一步

    以上的库要求$name$ [d] [_x64] .lib|dll的导出格式,而目前我还不清楚怎么可以通过宏指令形式修改目标文件名,只能手动修改,这是其中比较棘手的一个问题。

  • 相关阅读:
    Callable Future 和 FutureTask
    多线程常用工具类
    Servlet的forward与include方法
    Spring MVC 执行流程分析
    使用SpringEL表达式进行三目运算
    推荐10款Java程序员使用的单元测试工具
    使用SpringEL表达式进行方法调用
    使用SpringEL操作List和Map集合
    SpringEL表达式(一)-入门案例
    Servlet的生命周期
  • 原文地址:https://www.cnblogs.com/that-boy/p/12307790.html
Copyright © 2011-2022 走看看