当前位置:首页 » 编程软件 » exe编译成dll

exe编译成dll

发布时间: 2022-04-30 16:52:47

1. 如何编译生成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函数。

2. 如何将MFC生成的exe转换为DLL

新建一个DLL工程,比如MyDLL,将原工程中的*.h 和 *.cpp文件复制到新建的工程目录下,并添加到工程中。同样的方式导入res文件,不用再去建一遍对话框。我的做法是,新建的工程和原工程同名,然后仅在MyDLL.h中添加相应的头文件,最关键的一步是添加dll函数接口:
在MyDLL.h中添加
extern "C" __declspec(dllexport) void ShowDentalViewDlg(void);// "C"很必要,多个教程中强调,不加的话,由于C++编译器为函数添加类型名,可能导致在其他程序中调用无法找到对应的函数
然后在MyDLL.cpp中实现它:
extern "C" __declspec(dllexport) void ShowDentalViewDlg(void)
{
CDentalViewDlg dlg;
dlg.DoModal();
}

3. 如何将COM组件(*.dll)或exe,通过命令行重新编译为新的dll文件

采用
extern "C" int APIENTRY
DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
方式建立你COM组件类,重新编译即可。

4. 在VB中如何将exe工程文件转换成dll工程文件

不是个转换的DLL文件指的是动态连接库,你在新建程序的时候就可以建立一个动态连接库工程,在这个里面一般是放一些资源或则函数之内的东西,供程序调用,也就是说如果你的程序要更新的时候只需要更新相应的DLL文件就可以了,这样很方便,但是开发DLL最好还是用VC++,这个简单多了

5. DELPHI EXE怎么转成DLL,谢谢!

你打开你的工程文件,直接把那个“program”关键字改为"Library"然后编译即可
如果你要调用哪个过程函数,就要写导出表了
附一个简单的Dll工程:
Library Test;

uses
Windows;

function TestFunc(p:pointer):Pointer;stdcall;//需要调用的功能函数
begin
Result:=p;
end;

//导出表
Exports
TestFunc;

begin
end.

6. 有没有将exe文件编译成dll文件的工具

不用工具.
打开"我的电脑",在窗口的工具栏上面"工具"-->"文件夹选项"-->"查看"-->
找到"隐藏已知文件类型的扩展名",把前面的"囗"设置为空白,也就是不选,-->确定.
然后,就在你想要改的那个EXE文件重名名,后面加上”.DLL”就行啦.
但此法只是冶标不冶本.

7. exe文件怎么改成dll文件

两个结构是完全不一样的,需要拿到源代码,然后做改动重新编译才行的。

8. 如何filetool.exe 来生成dll文件

VC++6不能添加文件(vc与visio冲突)问题解决办法1、到微软官方下载 filetool.exe( http://support.microsoft.com/kb/241396/en-us);2、运行 filetool.exe 释放出一个c++工程文件;3、编译该工程生成 FileTool.dll;4、VisualC++, 中单击 “工具” 菜单中 “定制” ;5、在 “定制” 对话框中, 单击 “附加项和宏文件” 选项卡。6、单击 浏览 按钮并定位步骤 2 中生成 FileTool.dll 文件。7、单击 确定 以保存设置。8、这时会出现一个新的工具条,有两个按钮用于添加文件,原来的添加文件功能依旧不能用。9、如果想删除原来的菜单和快捷键,请参看 http://support.microsoft.com/kb/241396/en-us

9. 如何把VS的exe工程转成dll工程

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

10. c#使用命令行编译生成dll文件

C#使用csc.exe编译程序,csc使用/target:library(缩写: /t:library)参数生成Dll文件。
其它参数如下:
Visual C# 编译器选项
- 输出文件 -
/out:<文件> 指定输出文件名(默认值: 包含主类的文件或第一个文件的基名称)
/target:exe 生成控制台可执行文件(默认) (缩写: /t:exe)
/target:winexe 生成 Windows 可执行文件 (缩写: /t:winexe)
/target:library 生成库 (缩写: /t:library)
/target:mole 生成能添加到其他程序集的模块 (缩写: /t:mole)
/target:appcontainerexe 生成 Appcontainer 可执行文件 (缩写: /t:appcontainerexe)
/target:winmdobj 生成 WinMDExp 使用的 Windows 运行时中间文件 (缩写: /t:winmdobj)
/doc:<文件> 要生成的 XML 文档文件
/platform:<字符串> 限制可以在其上运行此代码的平台: x86、Itanium、x64、arm、anycpu32bitpreferred 或 anycpu。默认值为 anycpu。

- 输入文件 -
/recurse:<通配符> 根据通配符规范,包括当前目录和子目录下的所有文件
/reference:<别名>=<文件> 使用给定的别名从指定的程序集文件引用元数据 (缩写: /r)
/reference:<文件列表> 从指定的程序集文件引用元数据 (缩写: /r)
/addmole:<文件列表> 将指定的模块链接到此程序集中
/link:<文件列表> 嵌入指定的互操作程序集文件中的元数据 (缩写: /l)

- 资源 -
/win32res:<文件> 指定 Win32 资源文件(.res)
/win32icon:<文件> 对输出使用此图标
/win32manifest:<文件> 指定 Win32 清单文件(.xml)
/nowin32manifest 不包括默认 Win32 清单
/resource:<资源信息> 嵌入指定的资源 (缩写: /res)
/linkresource:<资源信息> 将指定的资源链接到此程序集 (缩写: /linkres)
其中 resinfo 的格式是 <file>[,<string name>[,public|private]]

- 代码生成 -
/debug[+|-] 发出调试信息
/debug:{full|pdbonly} 指定调试类型(“full”是默认类型,可以将调试程序附加到正在运行的程序)
/optimize[+|-] 启用优化 (缩写: /o)

- 错误和警告 -
/warnaserror[+|-] 将所有警告报告为错误
/warnaserror[+|-]:<警告列表> 将特定警告报告为错误
/warn:<n> 设置警告等级(0-4) (缩写: /w)
/nowarn:<警告列表> 禁用特定的警告消息

- 语言 -
/checked[+|-] 生成溢出检查
/unsafe[+|-] 允许“不安全”代码
/define:<符号列表> 定义条件编译符号 (缩写: /d)
/langversion:<字符串> 指定语言版本模式: ISO-1、ISO-2、3、4、5 或 Default

- 安全性 -
/delaysign[+|-] 仅使用强名称密钥的公共部分对程序集进行延迟签名
/keyfile:<文件> 指定强名称密钥文件
/keycontainer:<字符串> 指定强名称密钥容器
/highentropyva[+|-] 启用高平均信息量的 ASLR

- 杂项 -
@<文件> 有关更多选项,请阅读响应文件
/help 显示此用法信息 (缩写: /?)
/nologo 取消编译器版权信息
/noconfig 不要自动包含 CSC.RSP 文件

- 高级 -
/baseaddress:<地址> 要生成的库的基址
/bugreport:<文件> 创建“Bug 报告”文件
/codepage:<n> 指定打开源文件时要使用的代码页
/utf8output 以 UTF-8 编码格式输出编译器消息
/main:<类型> 指定包含入口点的类型(忽略所有其他可能的入口点) (缩写: /m)
/fullpaths 编译器生成完全限定路径
/filealign:<n> 指定用于输出文件节的对齐方式
/pdb:<文件> 指定调试信息文件名(默认值: 扩展名为 .pdb 的输出文件名)
/errorendlocation 输出每个错误的结束位置的行和列
/preferreilang 指定首选输出语言名称。
/nostdlib[+|-] 不引用标准库(mscorlib.dll)
/subsystemversion:<字符串> 指定此程序集的子系统版本
/lib:<文件列表> 指定要在其中搜索引用的附加目录
/errorreport:<字符串> 指定如何处理内部编译器错误: prompt、send、queue 或 none。默认值为 queue。
/appconfig:<文件> 指定一个包含程序集绑定设置的应用程序配置文件
/moleassemblyname:<字符串> 此模块所属程序集的名称

热点内容
手机优酷缓存视频格式 发布:2025-05-15 04:13:45 浏览:209
公益电影分镜头脚本插画 发布:2025-05-15 04:08:37 浏览:960
数据压缩编码 发布:2025-05-15 03:58:44 浏览:725
java字符为空 发布:2025-05-15 03:57:11 浏览:546
速讯安卓哪里下载 发布:2025-05-15 03:55:02 浏览:48
缓存区数据读写原理 发布:2025-05-15 03:39:57 浏览:585
编译器生成的是二进制文件吗 发布:2025-05-15 03:38:42 浏览:955
运营为什么区分ios和安卓 发布:2025-05-15 03:30:02 浏览:630
主播网站源码 发布:2025-05-15 02:50:56 浏览:168
中文编程语言有哪些 发布:2025-05-15 02:48:59 浏览:536