C++下创建并使用DLL文件 (VS2013 + win7)

转至https://blog.csdn.net/liuzubing/article/details/78607226

1、创建DLL工程

File -> New -> Project 选择Win32控制台应用程序,输入项目名称myDLL,选择DLL,Empty Project

2、编辑.h和.cpp文件,并生成DLL文件

新建createdll.h文件如下:

class __declspec(dllimport) CreateDLL
{
public:
    int d;
    void shuchu();    
    int add(int a,int b);
};
 
int __declspec(dllimport) c;

新建createdll.cpp文件如下:

#include "createdll.h"  
#include "iostream"
using namespace std;
 
void CreateDLL::shuchu()
{
    cout << "shenzhen" << endl;
}
int CreateDLL::add(int a, int b)
{
    return a + b;
}
 
int c = 2;
 

然后编译整个工程后在Debug目录如下:

包含myDLL.dll和myDLL.lib,以及在该工程下还包括上述创建的两个文件。

特别注意:在.h文件中不可以对变量进行赋值,否则会报错,只能进行属性和方法的一些定义。

3、使用DLL文件

创建一个win32控制台应用程序空项目

3.1 隐式调用DLL

创建一个.cpp文件,先编译一次,将createdll.h和myDLL.lb文件拷贝到该工程目录下,并且将myDLL.dll文件拷贝到Debug或者release目录下;

(1)方法1:在项目中,属性->连接器->输入->附加依赖项中,添加myDLL.lib,编辑.cpp文件如下所示:

#include<iostream>
using namespace std;
#include "createdll.h"  
 
int main()
{    
    CreateDLL createopencldll;
 
    createopencldll.d = 23;
    cout << createopencldll.d << endl;
 
    cout << createopencldll.add(2,9) <<endl;
 
    createopencldll.shuchu();
    
    cout << "c=" << c << endl;
    return 0;
}

(2)方法2:不用添加附加依赖项方法:

#pragma comment(lib, "myDLL.lib")  
#include<iostream>
using namespace std;
#include "createdll.h"  
 
int main()
{    
    CreateDLL createopencldll;
 
    createopencldll.d = 23;
    cout << createopencldll.d << endl;
 
    cout << createopencldll.add(2,9) <<endl;
 
    createopencldll.shuchu();
    
    cout << "c=" << c << endl;
    return 0;
}

3.2 显式调用

该方法自主参考网络,较为复杂不作讲解

猜你喜欢

转载自blog.csdn.net/choupiaoyi2794/article/details/81195668