• C++ 调用C++写的函数库的2种方法之一(显式调用)


    一:创建C++ DLL类库,名称:Dll1

    1.Dll.h

    _declspec(dllimport) int add(int a, int b);
    

      

      2.Dll.cpp

    // Dll.cpp : 定义 DLL 应用程序的导出函数。
    //
    
    #include "stdafx.h"
    
    #include<iostream>
    
    
    
    //#include"Dll.h"
    using namespace std;
    
    extern "C" _declspec(dllexport) int add(int a, int b)
    {
       
         return (a+b);
    
    }
    

      

    二:C++启动项目win32项目,名称:DynamicLoadDll

    1.DynamicLoadDll.h

       空白,没有写内容

    2.DynamicLoadDll.cpp

    // DynamicLoadDll.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    #include "windows.h"
    #include <iostream>
    using namespace std;
    
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	HINSTANCE hInst;
    	hInst=LoadLibrary("Dll.dll");
    	typedef int (*ADDPROC)(int a,int b);
    	ADDPROC Add=(ADDPROC)GetProcAddress(hInst,"add");
    	//ADDPROC Add=(ADDPROC)0x00011078;
    	cout<<Add(5,4)<<endl;
    	return 0;
    }
    

      

    三:配置

         1.想将dll文件copy到启动项目的debug中去。

         2。按照下图中的红框来设置。我不明白我的为什么要在这里加引用,如果不加,它就会报错,解析不了,网上的都没有加,所以在这里碰到了很多的挫折。

    3. 结果

         在dos命令窗口出现5+4的结果 9

  • 相关阅读:
    Java 字节码解释说明
    JVM垃圾回收:G1回收器
    JVM 参数
    HotSpot 虚拟机对象探秘
    JDK 内置图形界面工具
    Java 内存模型
    在网络设备上调试 Android 程序
    .NET MVC异步调用中的Session问题
    在MVC的ApiController中实现统一校验
    使用 AndroidX86 在虚拟机中作为调试设备
  • 原文地址:https://www.cnblogs.com/nanyangzp/p/3428474.html
Copyright © 2020-2023  润新知