当前位置:   article > 正文

VS2010 C语言DLL项目hello world程序以及win32控制台程序调用dll示例

vs2010

一、使用Visual Studio 2010编写C语言 DLL项目hello world程序

1.点击桌面 VS2010 图标,运行程序。(或者通过菜单栏打开程序) 

2.点击【文件】 -> 【新建】 -> 【项目】

3.点击【VisualC++】和【win32控制台应用程序】,设置好名称和存储位置,点击【确定】

 4.点击【下一步】

5.选择【DLL】和【空项目】,点击【完成】

6.至此就完成了控制台项目的新建,在VS2010程序界面的右侧可以看见新建好的控制台项目

7.在项目名下方的【源代码】(或【头文件】)文件名上点击鼠标右键,在弹出菜单栏上点击【添加】-> 【新建项】(或【现有项】,现有项是已经存在的源代码文件)

8.点击【代码】 -> C++文件(.cpp)(或【头文件(.h)),输入新文件的名称(如:demoDll),点击【添加】

9.此时在VS2010程序界面右侧就可以看到源文件,点击源文件就可以开始输入代码了

10.在源文件中(如:demoDll.cpp)输入下述代码,确定正确无误之后继续往下

  1. #include "demoDll.h"
  2. int add(int a, int b) {
  3.     return a + b;
  4. }

11.在项目名下方的【头文件】文件名上点击鼠标右键,在弹出菜单栏上点击【添加】-> 【新建项】(或【现有项】,现有项是已经存在的源代码文件)

12.点击【代码】 -> 【头文件(.h),输入新文件的名称(如:demoDll),点击【添加】

13.在源文件中(如:demoDll.h)输入下述代码,确定正确无误之后继续往下

  1. #pragma once
  2. // extern "C" 是表示C语言代码,优点通常调用动态库不改变函数名
  3. // _declspec(dllexport) 导出函数
  4. extern "C" __declspec(dllexport) int add(int a, int b);

14.根据应用场景进行平台设置

x86(Win32)、x64的区别:

x86(Win32)平台编译出来的exe(可执行文件)或dll(动态链接库)都是32位的;x64对应的则是64位的。

若你的启动项目,即主程序(编译出来是exe文件的)是x86平台下编译的,而它所依赖的一个项目(或动态链接库)是由x64位平台编译出来的,则会提示“未能加载文件或程序集...或它的某一个依赖性。试图加载格式不正确的程序。”之类的错误。这是因为32位程序不能加载64位的dll,更不能调用其中的类、方法和对象等。反之,若主程序是由x64平台编译出来的,而dll是x86的呢?答案。。也是不行的!

15.点击【生成】 -> 【重新生成解决方案】(或快捷键Ctrl + Alt + F7),直至没有报错为止 

在输出文件夹(Debug或Release)下可以找到新生成的demoDll.dll和demoDll.lib。

如何使用DLL工程生成的文件,参见下一节内容。

二、win32调用dll示例

1.参照文章【2022 VS2010 C语言控制台输出 Hello World VS2022 和 VS2010 C语言控制台输出 Hello World_vs控制台输出_西晋的no1的博客-CSDN博客 】,建立一个win32控制台程序。

2.将上述DLL项目生成的demoDll.dll文件放到win32控制台程序的源文件下,位置如下图所示。

3.win32控制台程序的demo.cpp文件内容,用下述代码覆盖

  1. #include <stdio.h>
  2. #include<Windows.h>
  3. int main()
  4. {
  5. HMODULE h = NULL;//创建一个句柄h
  6. h = LoadLibrary(L"demoDll.dll");
  7. if (h == NULL)//检测是否加载dll成功
  8. {
  9. printf("加载DLLTest1.dll动态库失败\n");
  10. return -1;
  11. }
  12. typedef int(*AddFunc)(int, int); // 定义函数指针类型
  13. AddFunc add;
  14. // 导出函数地址
  15. add = (AddFunc)GetProcAddress(h, "add");
  16. int sum = add(100, 200);
  17. printf("动态调用的结果%d\n", sum);
  18. return 0;
  19. }

4.点击【生成】 -> 【重新生成解决方案】(或快捷键Ctrl + Alt + F7),确定正确无误之后继续往下

5.运行程序

代码输入完成以后,可以通过以下2种方法来运行。

1、在菜单栏上选择“调试”-“开始执行(不调试)”命令。

2、编译环境中使用快捷键Ctrl+F5直接开始执行。

6.运行结果

三、资源下载链接

https://download.csdn.net/download/xijinno1/87862021

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/204299
推荐阅读
相关标签
  

闽ICP备14008679号