vs2013 dll 文件的创建和调用

[b]此部分是转别人博客的内容[/b]
[url]http://www.cnblogs.com/tiangaipain/p/3712500.html[/url]

首先,我们打开vs2013,依此点击文件-->新建-->项目-->win32控制台应用程序,起名myDll,确定,下一步,应用程序类型选择dll,默认点击完成(空项目和导出符号我们不选择),个人理解dll文件的书写比较类似于C++中的头文件,从左侧的解决方案中可以看见源文件中包括dllmain.cpp myDll.cpp 和stdafx.cpp三项,这里的dllmain .cpp 类似用C中的main函数,但是我的们的代码并不是在这个dllmain函数,他相当于一个入口和出口,当函数执行时首先进入这个dllmain函数中然后,执行完其他函数后再今天这个dllmain函数,我们需要自己定义的函数应该写在myDll.cpp中,如果dll中含有其他的头文件的话,需要在stdafx.h中进行声明。我这里写一个很简单的加和函数Add(int x ,int y);

// myDll.cpp : 定义 DLL 应用程序的导出函数。 
//

#include "stdafx.h"
_declspec (dllexport) int Add(int x, int y)
{
return (x+y);
}


写完代码后,我们要查看这个dll是不是正确,在调试的左边有一个生成,点击生成,选择第一个生成解决方案,如果代码正确后就回显示生成成功,然后查看文件的地址中的debug你会发现生成了myDll.dll和myDll.lib,则说明我们dll是成功的。
调用
现在我们看看怎么调用写好的dll
同样我们需要写一个简单的测试函数,VS中文件--》新建--》项目--》win32控制台应用程序,起名为test_myDll确定,下一步,控制台应用程序,选择空项目。完成,这里我们用一个c语言程序进行调用,点击源文件新建一个cpp代码如下

#include <stdio.h> 
#pragma comment(lib, "myDll.lib")//调用dll文件时候必须用到的
int Add(int x, int y); //对刚才写好的Add函数进行声明
//主函数
int main()
{
printf("%d\n",Add(4,5));
return 0;
}


写好代码后选择调试左边的生成,生成解决方案,输出框中会提示无法打开myDll.lib,这是因为我们没有把写好Dll文件拷贝到这个程序的debug中,就会出现路径不明。这样我们在吧myDll拷贝到测试函数的debug中,拷贝完成后,再次生成解决方案,这样依然无法打开myDll.lib,这是因为我们拷贝了但是没有声明,右键左边生成方案下面的test_myDll,点击最下面的属性,选择vc++目录,找出你的测试函数的debug目录,拷贝到库函数的最前面,E:\code\VS\dll\test_myDll\Debug;不过记着要带分好,。完成后再次生成 解决方案,现在就会成功,然后选择调试,点击开始执行(不调试)就会出现我们Add(4,5)的结果 9 。
=================================================================================
但是按照上述步骤操作完之后, 在运行test_myDll的cpp文件的main函数时还是报:unable to start program F://xxx.dll,从而无法运行。
需要在vs2013里配置solution的startup project为test_myDll才行
[url]http://stackoverflow.com/questions/12119333/visual-studio-2010-unable-to-start-program-dll[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值