zoukankan      html  css  js  c++  java
  • 自己编写DLL并导出函数

    sub.c

    #include<windows.h>
    #include"sub.h"
    int WINAPI DllMain(_In_ HANDLE _HDllHandle, _In_ DWORD _Reason, _In_opt_ LPVOID _Reserved)   
    {   
        return TRUE;   
    } 
    
    
    EXPORT int sub(int a,int b)
    {
        return a-b;
    
    }
    
    EXPORT int add(int a,int b)
    {
        return a+b;
    }

    sub.h

    #ifdef __cplusplus   
    #define EXPORT extern "C" __declspec (dllexport)   
    #else   
    #define EXPORT __declspec (dllexport)   
    #endif   
    
    
    EXPORT int sub(int a,int b);
    EXPORT int add(int a,int b);

    然后生成解决方案:

    即可在Debug/Release目录中看到一个 sub.lib,sub.dll

    然后我们把

    sub.lib,sub.dll,sub.h这3个文件打包  就可以给用户使用了。

    如何使用?

    方法一:可以把这3个文件拷贝到当前目录下使用显示的链接:

    #include<windows.h>
    
    #include<stdio.h>  
    #include"sub.h"
    
    
    #pragma comment(lib,"subDll.lib")  
    
    
    int main()
    {
        int a=4,b=1;
        int c;
    //    printf("%d+%d=%d
    ",a,b,add(a,b));
        c=sub(a,b);
        printf("%d-%d=%d
    ",a,b,c);
        return 0;
    }

    方法二:

    第一步:

    第二步:

    #include<windows.h>
    
    #include<stdio.h>  
    #include"sub.h"
    
    
    //#pragma comment(lib,"subDll.lib")  
    
    
    int main()
    {
        int a=4,b=1;
        int c;
    //    printf("%d+%d=%d
    ",a,b,add(a,b));
        c=sub(a,b);
        printf("%d-%d=%d
    ",a,b,c);
        return 0;
    }

    编译运行成功!

  • 相关阅读:
    【多线程】工具类汇总
    【JVM】GC日志样例解读
    【Docker】
    XXS level5
    XXS level4
    XXS level3
    XXS level2
    SQLI DUMB SERIES-6
    SQLI DUMB SERIES-5
    XXS level1
  • 原文地址:https://www.cnblogs.com/qiangua/p/4007390.html
Copyright © 2011-2022 走看看