用VS 如何由源代码生成DLL文件
1:创建DLL工程
文件->新建->项目->visual c++->win32->win32控制台应用程序(win32项目也可以)
填写项目名称MyDLL->确定->下一步->DLL(附加选项 对空项目打钩)->完成。
到这里DLL工程就创建完毕了,下面新建两个文件MyDLL.cpp和MyDLL.h。
MyDLL.cpp内容如下:
1 #include
2 using namespace std;
3 #include "MyDLL.h"
4
5 int Add(int &a,int &b)
6 {
7 return a+b;
8 }
MyDLL.h内容如下:
1 #pragma once
2
3 extern "C" __declspec(dllexport) int Add(int &a,int &b);
点击生成Bulid -->Bulid MyDLL,dll文件就生成了,vs2008不能直接生成lib文件,这个时候就需要我们在建立dll工程的时候 再新建一个def文件,默认生成然后重新生成就能够得到lib文件了,但可以通过修改工程属性里面的general->project default->configure type修改为lib,就可以生成lib文件。
注意:如果在已存在的工程上创建dll或者lib,不需要修改工程,只要把工程属性里面的general->project default->configure type修改为lib或者dll,就可以生成lib文件或者dll文件了
在C++程序中使用刚才生成的DLL文件步骤:
新建一个win32 控制台工程,取名testMyDLL,新建两个文件:testMyDLL.cpp和testMyDLL.h,
首先需要 隐式链接采用静态加载的方式,比较简单,需要.h、.lib、.dll三件套。新建“控制台应用程序”或“空项目”。配置如下:(这一点非常重要)
项目->属性->配置属性->VC++ 目录-> 在“包含目录”里添加头文件MyDLL.h所在的目录
项目->属性->配置属性->VC++ 目录-> 在“库目录”里添加头文件MyDLL.lib所在的目录
项目->属性->配置属性->链接器->输入-> 在“附加依赖项”里添加“MyDLL.lib”(若有多个 lib 则以空格隔开)
testMyDLL.cpp内容如下:
#include "testMyDLL.h"
#pragma comment(lib,"..\\debug\\MyDLL.lib")//可以写成绝对路径,但是路径一定要用\\来指明,即:J:\\Pr//ograms\\C++\\Practice\\DLLTEST\\DLLtest\\Debug\\MyDLL.lib"#include
using namespace std;
int main()
{
int a =3;
int b =2;
cout<<Add(a,b)<<endl;
getchar();
}
testMyDLL.h内容如下
#pragma once
extern "C" _declspec(dllexport) int Add(int &a,int &b);
现在可以编译通过了,但是程序运行就报错,还需要将MyDLL.dll复制到当前项目生成的可执行文件所在的目录。(这一点非常重要)
这里需要注意testMyDLL.cpp文件中调用lib的这句话:
#pragma comment(lib,"..\\debug\\MyDLL.lib")
这里需要指明lib所在的文件夹,当然我们也可以在生成dll的MyDLL工程中,指定lib和dll文件的输出路径,直接到testMyDLL工程下。
注意:如果只有dll文件,那么必须在程序里面调用LoadLibrary()函数才能使用,如果有lib文件,那么有两种方式可以马上进行调用
-
佚名2024-11-06 09:14:58
问android源代码文件用什么软件打开??
答android源代码文件通过在Eclipse中打开就可以,前提是要把源码导入到Eclipse中,然后ctrl+类 就可可以点击查看。Android是一种基于L...
-
佚名2024-11-06 07:41:19
问软件公司如何进行源代码安全管理
答源代码版本管理SVN,源代码防泄密管理DSA ... ...各种工具很多。
-
佚名2024-11-06 13:39:10
问软件开发公司如何确保源代码不被带出公司?
答每个员工的电脑上都装有监控软件,不能上QQ、MSN、不能通过网页收发邮件、不能用USB存储器、没有光驱。...........这种公司我肯定是不会去的签订保密协...
-
佚名2024-11-06 00:16:55
问Excel 如何用代码批量提取文件夹并重命名
答文件夹重命名,需要从内到外逆序进行的,不然你即使提取了也会出错!
-
佚名2024-11-06 03:58:59
问如何利用VB,查找已知文件夹内的文件,指定字符匹配名字,可打开文件!求源码,谢谢!
答Private Declare Function icePub_searchFiles Lib "icePubDll.dll" (ByVal strCurren...
-
佚名2024-11-06 16:39:09
问ASP源码,在内容页中需要显示分类名称,如何调用写代码?
答sql="select * from Show where tid="&id&" or tid in (Select id from Show...
-
佚名2024-11-06 11:01:06
问怎样用vs修改DLL文件界面的编码?
答2种方法: 1,找到他的源码直接修改,然后重新编译dll 2,估计你的操作系统无法识别他的编码,但是我十分怀疑你的软件安装是否正确,因为英文是ASCII...
-
佚名2024-11-06 08:00:00
问如何确保软件公司源代码不会外泄
答用加密狗,封装
-
佚名2024-11-06 08:00:00
问有了源代码之后怎么完成一个软件
答有了源码,看是什么语言编的,再大致阅读一下源码,知道它的功能模块是怎样的,visual studio 2008这个集成开发环境挺好的,把源码粘进去开发吧。不过具...
-
佚名2024-11-06 08:00:00
问如何利用excel VBA生成PDF文件
答首先,加载引用,如图然后,在打印机中对Acrobat Distiller的打印进行设置设置(必须,否则转化出错!)Public Sub MakePDF(ByVa...
风水
起名
网名
- 1 找网名梅
- 2 小仙女网名三个字
- 3 带大叔两字的网名大全
- 4 三字霸气情侣网名大全
- 5 怎样带 的QQ网名
- 6 集团公司网名
- 7 酷狗为什么不能修改昵称
- 8 steam用户名查昵称
- 9 苹果手机微信昵称怎么添加好友
- 10 眉字开头的昵称
说说
- 1 伤感男个性签名
- 2 个性签名很高傲
- 3 被父母否定的说说
- 4 qq空间批量上传说说
- 5 友情一味的付出说说
- 6 轻松过月子说说
- 7 那他还说说了
- 8 过新年晚安说说
- 9 关于回忆自己人生的唯美句子说说心情短语
- 10 被渣男伤得说说