导航:首页 > 版本升级 > 将工程生成dll文件

将工程生成dll文件

发布时间:2023-02-11 16:45:21

Ⅰ 如何编译生成dll

使用VC下的cl和link手工创建dll并实现函数导入

1、创建dll头文件
/*
* dllmain.h
*/
#ifndef _DLLMAIN_H
#define _DLLMAIN_H

int getNumber();

#endif

2、创建dll源文件:
/*
* dllmain.c
*/
#include "dllmain.h"

int getNumber()
{
return 10;
}

3、 创建def文件:
; export.def
LIBRARY MY_DLLMAIN ; MY_DLLMAIN 将成为生成的dll的名称
EXPORTS
getNumber @1 ; 这个名称即为函数的实际导出名称 @1为函数的导出编号

4、生成dll文件:
cl dllmain.c /c
link /def:export.def /dll dllmain.obj

这时,工程中已经包含了 dllmain.h dllmain.c export.def dllmain.obj dllmain.lib dllmain.exp MY_DLLMAIN.dll 其中,后4个文件是编译链接过程中生成的文件

5、创建dlltest.c:
/*
* dlltest.c
*/
#include <stdio.h>
#include "dllmain.h" //dll库的头文件

#pragma comment(lib,"dllmain.lib") //dllmain.lib即是上一步生成的文件

int main()
{
printf("%dn",getNumber());
}

6、编译、链接dlltest.c
cl dlltest.c /c
link dlltest.obj

注意:这里dllmain.lib和dllmain.h应该和dlltest.c在同一个目录中。此步的结果将生成 dlltest.exe

7、运行:
dlltest

这时,系统将载入my_dllmain.dll这个动态链接库,将调用其中的getNubmer函数。

Ⅱ 怎样正确生成DLL

创建DLL工程这里,我们为了简要说明DLL的原理,我们决定使用最简单的编译环境VC6.0,如下图,我们先建立一个新的Win32 Dynamic-Link Library工程,名称为“MyDLL”,在Visual Studio中,你也可以通过建立Win32控制台程序,然后在“应用程序类型”中选择“DLL”选项,

点击确定,选择“一个空的DLL工程”,确定,完成即可。

一个简单的dll
在第一步我们建立的工程中建立一个源码文件”dllmain.cpp“,在“dllmain.cpp”中,键入如下代码

Ⅲ 用VS 如何由源代码生成DLL文件

1:创建DLL工程

文件->新建->项目->visual c++->win32->win32控制台应用程序(win32项目也可以)

填写项目名称MyDLL->确定->下一步->DLL(附加选项 对空项目打钩)->完成。

到这里DLL工程就创建完毕了,下面新建两个文件MyDLL.cpp和MyDLL.h。

MyDLL.cpp内容如下:

testMyDLL.h内容如下

#pragmaonce


extern"C"_declspec(dllexport)intAdd(int&a,int&b);

现在可以编译通过了,但是程序运行就报错,还需要将MyDLL.dll复制到当前项目生成的可执行文件所在的目录。(这一点非常重要)

这里需要注意testMyDLL.cpp文件中调用lib的这句话:

#pragmacomment(lib,"..\debug\MyDLL.lib")

这里需要指明lib所在的文件夹,当然我们也可以在生成dll的MyDLL工程中,指定lib和dll文件的输出路径,直接到testMyDLL工程下。

注意:如果只有dll文件,那么必须在程序里面调用LoadLibrary()函数才能使用,如果有lib文件,那么有两种方式可以马上进行调用

Ⅳ 怎么把lib文件生成dll文件

你好,把lib文件生成dll文件的方法:
1、在工程上点击右键,然后选择properties,进入后在左侧的树形目录中选择Linker->General
2、然后要保证Enable Incremental Linking (从上往下数是第四项)选项选择(Yes (/INCREMENTAL));
Ignore Import Library(第六项)选择No;
Link Library Dependencies (倒数第二项)选择YES;
3、调整运行即可。

Ⅳ c++ 如何生成dll文件

在VC++中选择新建一个Win32 Dynamic-Link Library。需要建立一个c/c++ head file和一个c/c++ source file并加入工程。头文件中内容为输出函数的声明,源文件中内容为DllMain函数和输出函数的定义。下面是一个最简单的例子。

//dlldemo.h
#ifdef __cplusplus
#define EXPORT extern "C" __declspec(dllexport)
#else
#define EXPORT __declspec(dllexport)
#endif

EXPORT void CALLBACK DllFoo(void) ;

//dlldemo.c
#include <windows.h>
#include "dlldemo.h"

int WINAPI DllMain (HINSTANCE hInstance, Dword fdwReason, PVOID pvReserved)
{
return TRUE ;
}

EXPORT void CALLBACK DllFoo(void)
{
MessageBox(NULL,TEXT("This function is exported from a DLL"),TEXT("DllFoo"),MB_OK) ;
return ;
}
头文件预处理中的__declspec是微软增加的“C扩展类存储属性”(C Extended Storage-Class Attributes),它指明一个给出的实例被存储为一种微软特定的类存储属性,可以为thread,naked,dllimport或dllexport. [MSDN原文:The extended attribute syntax for specifying storage-class information uses the __declspec keyword, which specifies that an instance of a given type is to be stored with a Microsoft-specific storage-class attribute (thread, naked, dllimport, or dllexport).] 输出函数必须指明为CALLBACK。 DllMain是dll的入口点函数。也可以不写它。DllMain必须返回TRUE,否则系统将终止程序并弹出一个“启动程序时出错”对话框。 编译链接后,得到动态链接库文件dlldemo.dll和输入库文件dlldemo.lib。

Ⅵ 如何把VS的exe工程转成dll工程

解决办法:
1、下载缺少的dll文件,复制到c:\windows\system32文件夹下;
2、按win+r,输入regsvr32 /s 该文件文件名XX.DLL,点击确定;
3、弹出提示信息框,提示注册成功,点击确定即可。
4、用腾讯电脑管家电脑诊所--搜 缺失dll文件--立即修理

阅读全文

与将工程生成dll文件相关的资料

热点内容
有什么网站可以做衣服 浏览:896
苏州企业qq 浏览:195
安全编程是什么 浏览:603
什么能存储视频数据最久 浏览:817
怎么用少儿编程在电脑上制作游戏 浏览:57
一元云购怎么编程 浏览:56
别人的u盘文件可以用吗 浏览:665
微信电脑如何保存视频文件 浏览:658
qq语音游戏声音 浏览:641
w7文件系统损坏怎么办 浏览:267
文件名前设置 浏览:509
office保存文件出错 浏览:589
离型膜厚检测数据结果怎么看 浏览:411
c格式文件打不开是怎么回事 浏览:644
cad2014缺少d3文件 浏览:484
三星微信数据清理了怎么恢复 浏览:277
oppo倒数据用什么软件 浏览:729
销售额数据变动的主要原因是什么 浏览:807
qq设置常用登录地址吗 浏览:765
视频如何添加app画面 浏览:303

友情链接