dnf里的dll怎么写
1.易语言怎么写DNF.dll文件注入器
.版本 2
.支持库 shell
.程序集 窗口程序集1
.程序集变量 输入法句柄
.子程序 __启动窗口_创建完毕, , 公开
热键.注册 (_启动窗口.取窗口句柄 (), , #Home键, &子程序1)
.子程序 输入法注DLL
写到文件 (取特定目录 (10) + “\SouGoo.ime”, #Shurufa)
写到文件 (取运行目录 () + “\feifei.dll”, #Dll)
输入法句柄 = 输入法.安装 (取特定目录 (10) + “\SouGoo.ime”)
.如果真 (输入法句柄 ≠ 0)
输入法.设置注入 (取特定目录 (10) + “\Sougoo.ime”, 取运行目录 () + “\feifei.dll”)
信息框 (“按Home呼出!!!”, 0, )
.如果真结束
.子程序 _按钮1_被单击
.如果真 (进程是否存在 (“DNF.exe”))
输入法注DLL ()
返回 ()
.如果真结束
信息框 (“游戏未运行!”, 0, )
.子程序 子程序1
.局部变量 进程, 逻辑型
进程 = 进程是否存在 (“DNF.exe”)
.如果真 (进程)
输入法.激活 (取句柄2 (“DNF.exe”, , ), 输入法句柄)
.如果真结束
.子程序 _按钮2_被单击
.局部变量 dnf进程, 逻辑型
dnf进程 = 输入法.卸载 (输入法句柄)
.如果 (dnf进程)
信息框 (“关闭成功!”, #信息图标, “系统信息”)
.否则
信息框 (“关闭失败!可能已经关闭!”, #信息图标, “系统信息”)
进程结束 (进程取ID (“DNF.exe”))
输入法.清除注入 (取特定目录 (10) + “\Sougoo.ime”)
删除文件 (取运行目录 () + “\feifei.dll”)
输入法.卸载 (输入法句柄)
结束 ()
.如果结束
输入法.清除注入 (取特定目录 (10) + “\Sougoo.ime”)
删除文件 (取运行目录 () + “\feifei.dll”)
输入法.卸载 (输入法句柄)
结束 ()
.子程序 __启动窗口_将被销毁
输入法.清除注入 (取特定目录 (10) + “\Sougoo.ime”)
删除文件 (取运行目录 () + “\SkinH_EL1.dll”)
输入法.卸载 (输入法句柄)
2.DNF 显示DLL
一旦出现蓝屏,版主就该立即记录下蓝屏代码,这样就可以依据代码对号入座,这样问题就很容易解决了。
回答版主的问题,首先我先说下蓝屏的原因有哪些,这样让版主对蓝屏有个大致的了解。其次,我在最后附上了一些蓝屏代码,供版主依代码来解决问题,当然代码很多我不可能全部列出来完。
剩余的,版主可以在最后的链接去查看更多代码。 电视机会出现蓝屏,电脑也会出现"蓝屏"。
电脑出现"蓝屏"时还会出现一连串警告,轻者只要按ESC就能返回,重者就会出现死机,使人十分烦恼。出现"蓝屏"无外有二种情况,一种是软件引起的,另一种是硬件引起的,软件引起的"蓝屏"故障,一般重装系统都能解决。
但也可以不重装系统来解决。而硬件引起的"蓝屏"故障,要根据具体的情况分别解决。
一、软件引起的"蓝屏"故障 1、重要文件损坏或丢失会引起"蓝屏"故障(包括病毒所致)。 WIN中VxD(虚拟设备驱动程序)或.DLL(动态连接库)之类的重要文件丢失会出现"蓝屏警告"。
解决的办法是利用Win的启动盘中的"Ext"来恢复被损坏或丢失的文件,步骤如下: (1)、先用WIN的启动盘起动电脑,在提示符下敲入"Ext"命令; (2)、在提示"Please enter the path to the Windows CAB files (a) :" 后输入WIN安装压缩包所在的完整路径,回车,如"E:\Pwin2003\Win2003; (3)、在提示"Please enter the name (s) of the file (s) you want to extract:"后输入你丢失的文件名,如"BIOS.Vxd",回车; (4)、在解压路径提示"Please enter path to extrct to (' Enter' for current directory): " 后输入文件将被解压到的完整路径,如"C:\Windows\System" 并回车,后面出现的提示,只要按YES回车即可,得新启动后就能恢复系统。注:因事先记下丢失的文件名,以便恢复) 如是病毒引起,可用杀毒软件来杀毒,并及时恢复中毒前的备份; 如果能启动图形界面,可采取重装主板以及显示卡的驱动程序,和进行"系统文件扫描"来恢复被破坏或丢失的文件,可从开始菜单内附件中的系统工具中找到; 2、注册表损坏导致文件指向错误所引起的"蓝屏" 在注册表被改动后或受到破坏,在开机或在调用程序时出现"蓝屏",并且屏幕有出错信息(包括出错的文件名)。
--解决方法是恢复注册表备份,重新启动计算机,切换到MS-DOS方式,进入Windows子目录,键入Scanreg\regstore 后回车,就可恢复最近一次注册表 3、在卸载程序后出现"蓝屏",多数是由于程序卸载不完善造成。解决办法:首先记下出错文件名,然后到注册表中找到以下分支"HKEY_LOCAL_MACHINE\Sysytem\CurrentControlSet\Services\VxD",在"查找"中输入出错的文件名,把查到键值删除即可。
4、在System.ini文件错误引起的"蓝屏",由于软件卸载或安装时没有即时更新System.ini造成"蓝屏"的,解决办法:禁用注册表中该项或重装相应软件或驱动程序; 由于Win98的spl和Microsoft的Vxd_fix.exe补丁程序对Win98的稳定起着重要的作用,可到华军网站下载补丁Vxd_fix.exe. 5、系统资源耗尽引起的蓝屏。这一类故障主要是三个堆资源(系统资源、用户资源、GDI资源)占用有情况有关。
--打开资源监视器,看一下剩余资源的情况,如这三种资源都 在50%甚至更低,就很容易出现"非法操作"、"蓝屏"、"死机"。因此,必须减少资源浪费,减少不必要的程序加载,避免同时运行大程序(如图形、声音和视频软件),如加载计划任务程序、输入法和声音指示、声卡的DOS驱动程序,系统监视程序等; 6、DirexctX问题引起的"蓝屏"故障。
如DirectX版本过高、过低;游戏与它不兼容或是不支持;辅助文件丢失;显卡对它不支持,都可能造成此故障。升级或重装DirectX,尝试更新显卡的BIOS和驱动程序,或升级显卡。
7.软件不兼容导致的。 二、硬件引起的"蓝屏"故障 此类故障主要有以下几种: 1.内存超频或不稳定。
主要出现随机性"蓝屏"。恢复正常频率运行,或找一根好的内存条进行替换,一般都能解决问题,还要注意和CPU内存条很近的散热问题; 2.硬件的兼容性不好引起的"蓝屏"。
由于DIY门使用的是兼容机,没有经过完善的监测,从而留下陷患, 如不同规格的内存条混插等,可交换内存条所插的插糟位置,或更换相同规格、厂家、批号的内存条都可解决问题。而内存条的好坏直接影响系统的稳定性,应特别引起重视; 3.硬件散热问题也会引起"蓝屏"。
这一类故障,往往都有一定规律,一般在电脑运行一段时间后才出现,表现中"蓝屏"死机或随意重启动,解决方法是很简单,不要随意超频,加强机内的降温。 4、I / O冲突也能引起"蓝屏"。
这种现象比较少,如果出现,可以从系统中删除带!号或?号的设备名,重新启动计算机,一般能解决。 三、预防措施 总之要做到防患于末然,只要能在平时能做到以下几点,就能有效地避免出现"蓝屏"或死机。
1.定期对注册表进行备份,出错时能够及时恢复到原来的状态; 2.尽量避免非正常关机,可减少重要文件丢失。如.VxD .DLL文件等; 3.一般而言,计算机能正常工作,没必要去升级著如显。
3.dll文件用什么语言写或者怎么制作
DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被称为共享DLL文件。
Windows操作系统中的一些作为 DLL 实现的文件
·ActiveX 控件 (.ocx) 文件
ActiveX控件的一个示例是日历控件,它使您可以从日历中选择日期。
·控制面板 (.cpl) 文件
.cpl 文件的一个示例是位于控制面板中的项。每个项都是一个专用 DLL。
·设备驱动程序(.drv) 文件
设备驱动程序的一个示例是控制打印到打印机的打印机驱动程序。
链接方法:
当您在应用程序中加载 DLL 时,可以使用两种链接方法来调用导出的 DLL 函数。这两种链接方法是加载时动态链接和运行时动态链接。
在运行时动态链接中,应用程序调用 LoadLibrary 函数或 LoadLibraryEx 函数以在运行时加载 DLL。成功加载 DLL 后,可以使用 GetProcAddress 函数获得要调用的导出的 DLL 函数的地址。在使用运行时动态链接时,无需使用导入库文件。
Win32 DLL的特点
Win32 DLL与 Win16 DLL有很大的区别,这主要是由操作系统的设计思想决定的。一方面,在Win16 DLL中程序入口点函数和出口点函数(LibMain和WEP)是分别实现的;而在Win32 DLL中却由同一函数DLLMain来实现。无论何时,当一个进程或线程载入和卸载DLL时,都要调用该函数,它的原型是
BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason, LPVOID lpvReserved);
其中,第一个参数表示DLL的实例句柄;第三个参数系统保留;这里主要介绍一下第二个参数,它有四个可能的值:DLL_PROCESS_ATTACH(进程载入),DLL_THREAD_ATTACH(线程载入),DLL_THREAD_DETACH(线程卸载),DLL_PROCESS_DETACH(进程卸载),在DLLMain函数中可以对传递进来的这个参数的值进行判别,并根据不同的参数值对DLL进行必要的初始化或清理工作。举个例子来说,当有一个进程载入一个DLL时,系统分派给DLL的第二个参数为DLL_PROCESS_ATTACH,这时,你可以根据这个参数初始化特定的数据。另一方面,在Win16环境下,所有应用程序都在同一地址空间;而在Win32环境下,所有应用程序都有自己的私有空间,每个进程的空间都是相互独立的,这减少了应用程序间的相互影响,但同时也增加了编程的难度。大家知道,在Win16环境中,DLL的全局数据对每个载入它的进程来说都是相同的;而在Win32环境中,情况却发生了变化,当进程在载入DLL时,系统自动把DLL地址映射到该进程的私有空间,而且也复制该DLL的全局数据的一份拷贝到该进程空间,也就是说每个进程所拥有的相同的DLL的全局数据其值却并不一定是相同的。因此,在Win32环境下要想在多个进程中共享数据,就必须进行必要的设置。亦即把这些需要共享的数据分离出来,放置在一个独立的数据段里,并把该段的属性设置为共享。
怎么写dll入口
1.C#中如何编写Dll的入口函数
一、什么是DLL 以及使用它的好处
1、DLL 即:动态链接库
DLL是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL 副本的内容。DLL 是一个包含可由多个程序同时使用的代码和数据的库。(来自百度)
2、DLL的好处主要有:
1)当程序越来越庞大时,DLL避免了EXE文件的过大。分成DLL之后,不用把全部功能都集中到EXE里,需要的时候才调入内存。
2)DLL模块化了生产程序。DLL是产品,EXE就是个集装箱。因此对DLL模块的更新只需要替换此DLL文件即可,不用更新整个程序。
3)编译EXE时,不用编译DLL的内容,加快了编译速度。
4)DLL可重用。当一个DLL模式设计好之后,可以被其它项目或程序所引用。
5)DLL可以起到保密的作用。也就是说DLL可以将实现功能的源代码隐藏起来,调用者只能使用而不能看到其内部代码。
“动态链接”这几字指明了DLLs是如何工作的。对于常规的函数库,链接器从中拷贝它需要的所有库函数,并把确切的函数地址传送给调用这些函数的程序。而对于DLLs,函数储存在一个独立的动态链接库文件中。在创建Windows程序时,链接过程并不把DLLs文件链接到程序上。直到程序运行并调用一个DLLs中的函数时,该程序才要求这个函数的地址。此时Windows才在DLLs中寻找被调用函数,并把它的地址传送给调用程序。采用这种方法,DLLs达到了复用代码的极限。
二、在VS2010中如何创建和编写DLL
方法很简单,就是在程序的解决方案中添加一个项目,然后选择“类库”。注意,一定要在“解决方案”上添加项目才行,在项目中只能添加类文件了。类库项目一但添加,在程序编译的时候就会自动生成为DLL文件。
至于编写DLL 这和编写类文件代码是一致的。你可以在多个CS类文件中编写,也可以全放在一起CS类文件中编写。当然推荐的方式是根据功能分类将类库分别写在不同的CS文件中。(虽然在不同文件中,但同属一个项目的类文件会被编译进一个DLL库文件中)
三、在VS2010中如何使用自己编写的DLL
方法也很简单,在你的程序中的解决方案管理器里,找到“引用”然后点右键添加,在弹出的对话框中选择“浏览”,然后选择你刚才创建并编译过的DLL文件。然后在程序文件中使用using 来引入你DLL中的命名空间。注:如果DLL项目就在你当前的程序解决方案中,那么你可以直接在添加“引用”中选择“项目”而不是“浏览”。这样就可以直接引用本解决方案中编写的DLL类库。
四、在VS2010如果让DLL文件通过引用添加到新程序后依然可以在新程序代码中通过智能感知看到代码的注释(只包含那些\\\的注释 \\和\**\的注释是无法看到的)
方法是:在你创建DLL类库之后,右键单击这个DLL类库项目的属性,然后点击“生成”标签,在“输出”区域勾选 XML文档文件即可。每次在生成DLL项目时就会多生成一个同名的XML文件,打开这个文件可以看到里面全部是DLL当中的注释内容了(只包含\\\的注释)。从这里也可以看出,智能感知中看到的代码注释其实就是从XML中读取相应内容然后显示给程序员看。只要XML和DLL在同一文件夹下,VS在导入DLL的时候会自动将同名的XML也导入进来,用户不必手动复制。
五、其它
在使用DLL的时候还有一种方法是使用[DLLImport("yourdll.dll")]。这是com组件的使用方式,在VS中微软不推荐这样的方式使用DLL。
2.常用动态链接库的DLL有哪些
它是Dynamic Link Library 的缩写形式,DLL 是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。
动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。
DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL 副本的内容。
DLL 是一个包含可由多个程序同时使用的代码和数据的库。例如,在 Windows 操作系统中,Comdlg32 DLL 执行与对话框有关的常见函数。
因此,每个程序都可以使用该 DLL 中包含的功能来实现“打开”对话框。这有助于促进代码重用和内存的有效使用。
通过使用 DLL,程序可以实现模块化,由相对独立的组件组成。例如,一个计帐程序可以按模块来销售。
可以在运行时将各个模块加载到主程序中(如果安装了相应模块)。因为模块是彼此独立的,所以程序的加载速度更快,而且模块只在相应的功能被请求时才加载。
此外,可以更为容易地将更新应用于各个模块,而不会影响该程序的其他部分。例如,您可能具有一个工资计算程序,而税率每年都会更改。
当这些更改被隔离到 DLL 中以后,您无需重新生成或安装整个程序就可以应用更新。 下表说明了 Windows 操作系统中的一些作为 DLL 实现的文件: • ActiveX 控件 (.ocx) 文件 ActiveX 控件的一个示例是日历控件,它使您可以从日历中选择日期。
• 控制面板 (.cpl) 文件 .cpl 文件的一个示例是位于控制面板中的项。每个项都是一个专用 DLL。
• 设备驱动程序 (.drv) 文件 设备驱动程序的一个示例是控制打印到打印机的打印机驱动程序。[编辑本段]DLL 的优点 1、扩展了应用程序的特性; 2、可以用许多种编程语言来编写; 3、简化了软件项目的管理; 4、有助于节省内存; 5、有助于资源共享; 6、有助于应用程序的本地化; 7、有助于解决平台差异; 8、可以用于一些特殊的目的。
windows使得某些特性只能为DLL所用。[编辑本段]DLL 依赖项 当某个程序或 DLL 使用其他 DLL 中的 DLL 函数时,就会创建依赖项。
因此,该程序就不再是独立的,并且如果该依赖项被损坏,该程序就可能遇到问题。例如,如果发生下列操作之一,则该程序可能无法运行: • 依赖 DLL 升级到新版本。
• 修复了依赖 DLL。 • 依赖 DLL 被其早期版本覆盖。
• 从计算机中删除了依赖 DLL。 这些操作通常称为 DLL 冲突。
如果没有强制实现向后兼容性,则该程序可能无法成功运行。 DLL 入口点 在创建 DLL 时,可以有选择地指定入口点函数。
当进程或线程将它们自身附加到 DLL 或者将它们自身从 DLL 分离时,将调用入口点函数。您可以使用入口点函数根据 DLL 的需要来初始化数据结构或者销毁数据结构。
此外,如果应用程序是多线程的,则可以在入口点函数中使用线程本地存储 (TLS) 来分配各个线程专用的内存。下面的代码是一个 DLL 入口点函数的示例。
BOOL APIENTRY DllMain( HANDLE hModule, // Handle to DLL module DWORD ul_reason_for_call, // Reason for calling function LPVOID lpReserved ) // Reserved { switch ( ul_reason_for_call ) { case DLL_PROCESS_ATTACHED: // A process is loading the DLL. break; case DLL_THREAD_ATTACHED: // A process is creating a new thread. break; case DLL_THREAD_DETACH: // A thread exits normally. break; case DLL_PROCESS_DETACH: // A process unloads the DLL. break; } return TRUE; } 当入口点函数返回 FALSE 值时,如果您使用的是加载时动态链接,则应用程序不启动。如果您使用的是运行时动态链接,则只有个别 DLL 不会加载。
入口点函数只应执行简单的初始化任务,不应调用任何其他 DLL 加载函数或终止函数。例如,在入口点函数中,不应直接或间接调用 LoadLibrary 函数或 LoadLibraryEx 函数。
此外,不应在进程终止时调用 FreeLibrary 函数。 注意:在多线程应用程序中,请确保将对 DLL 全局数据的访问进行同步(线程安全),以避免可能的数据损坏。
为此,请使用 TLS 为各个线程提供唯一的数据。[编辑本段]导出 DLL 函数 要导出 DLL 函数,您可以向导出的 DLL 函数中添加函数关键字,也可以创建模块定义文件 (.def) 以列出导出的 DLL 函数。
方法一、向导出的 DLL 函数中添加函数关键字 要使用函数关键字,您必须使用以下关键字来声明要导出的各个函数: __declspec(dllexport) 要在应用程序中使用导出的 DLL 函数,您必须使用以下关键字来声明要导入的各个函数: __declspec(dllimport) 通常情况下,您最好使用一个包含 define 语句和 ifdef 语句的头文件,以便分隔导出语句和导入语句。 方法二、创建模块定义文件 (.def) 以列出导出的 DLL 函数 使用模块定义文件来声明导出的 DLL 函数。
当您使用模块定义文件时,您不必向导出的 DLL 函数中添加函数关键字。在模块定义文件中,您可以声明 DLL 的 LIBRARY 语句和 EXPORTS 语句。
关于特定情况下的调用,比如DLL函数中使用到了win32 API或者将C++生成的DLL供标准C语言使。
3.编写dll文件
1.在程序前面加一行代码
#pragma comment(linker,"/dll")
意思是告诉连接器 输出的是dll格式。这个好处是不用手动去修改工程属性。
2.或者vc编译器
新建工程,选择dll工程,然后将你的示范cpp替换他原先的cpp。这样vc会自动设置连接器属性,其中包括输出dll
3.或者手动去修改工程属性,找到输出格式那里,将exe换成dll
建议:用第一个方法吧,看着专业点,用起来也简单。 其中dll编程不是光输出一个dll格式的东西就算完了,因为你用的示范代码,所以不会存在额外问题了。如果你要自己写,还要注意下mian函数入口的名称,以及导入导出函数的格式写法。孙鑫视频确实有章讲的这方面,挺清晰。一般 windos编程教程书也会写dll编程部分,楼主要是想深究可以去查阅下。
其实dll编程 就多了一丁点东西而已,不是很复杂。
4.dll文件用什么语言写或者怎么制作
DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被称为共享DLL文件。
Windows操作系统中的一些作为 DLL 实现的文件
·ActiveX 控件 (.ocx) 文件
ActiveX控件的一个示例是日历控件,它使您可以从日历中选择日期。
·控制面板 (.cpl) 文件
.cpl 文件的一个示例是位于控制面板中的项。每个项都是一个专用 DLL。
·设备驱动程序(.drv) 文件
设备驱动程序的一个示例是控制打印到打印机的打印机驱动程序。
链接方法:
当您在应用程序中加载 DLL 时,可以使用两种链接方法来调用导出的 DLL 函数。这两种链接方法是加载时动态链接和运行时动态链接。
在运行时动态链接中,应用程序调用 LoadLibrary 函数或 LoadLibraryEx 函数以在运行时加载 DLL。成功加载 DLL 后,可以使用 GetProcAddress 函数获得要调用的导出的 DLL 函数的地址。在使用运行时动态链接时,无需使用导入库文件。
Win32 DLL的特点
Win32 DLL与 Win16 DLL有很大的区别,这主要是由操作系统的设计思想决定的。一方面,在Win16 DLL中程序入口点函数和出口点函数(LibMain和WEP)是分别实现的;而在Win32 DLL中却由同一函数DLLMain来实现。无论何时,当一个进程或线程载入和卸载DLL时,都要调用该函数,它的原型是
BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason, LPVOID lpvReserved);
其中,第一个参数表示DLL的实例句柄;第三个参数系统保留;这里主要介绍一下第二个参数,它有四个可能的值:DLL_PROCESS_ATTACH(进程载入),DLL_THREAD_ATTACH(线程载入),DLL_THREAD_DETACH(线程卸载),DLL_PROCESS_DETACH(进程卸载),在DLLMain函数中可以对传递进来的这个参数的值进行判别,并根据不同的参数值对DLL进行必要的初始化或清理工作。举个例子来说,当有一个进程载入一个DLL时,系统分派给DLL的第二个参数为DLL_PROCESS_ATTACH,这时,你可以根据这个参数初始化特定的数据。另一方面,在Win16环境下,所有应用程序都在同一地址空间;而在Win32环境下,所有应用程序都有自己的私有空间,每个进程的空间都是相互独立的,这减少了应用程序间的相互影响,但同时也增加了编程的难度。大家知道,在Win16环境中,DLL的全局数据对每个载入它的进程来说都是相同的;而在Win32环境中,情况却发生了变化,当进程在载入DLL时,系统自动把DLL地址映射到该进程的私有空间,而且也复制该DLL的全局数据的一份拷贝到该进程空间,也就是说每个进程所拥有的相同的DLL的全局数据其值却并不一定是相同的。因此,在Win32环境下要想在多个进程中共享数据,就必须进行必要的设置。亦即把这些需要共享的数据分离出来,放置在一个独立的数据段里,并把该段的属性设置为共享。
怎么写dll
1. 大侠
我从数据库中取出一个记录,然后把它存为HTML文件,接着用WEBBROWERS浏览,并按所见的格式将起打印出来,最后再把他删了,用程序我已实现代码如下所示,请问怎么将他写为DLL,我从未写过DLL,最好能有代码!谢谢!! {Memo1: TMemo; WB: TWebBrowser;}procedure TForm1.FormCreate(Sender: TObject);begin with ADOQuery1 do begin Close; SQL.Clear ; SQL.Text:='SELECT content from housecon where serialno='''+'71'+''''; open; first; memo1.lines.text:=fieldbyname('content').asstring; end; memo1.Lines.SaveToFile ('C:\My Documents\yxl.html'); WB.Navigate ('C:\My Documents\yxl.html'); WB.ExecWB(OLECMDID_PRINT,OLECMDEXECOPT_PROMPTUSER ); //deletefile('C:\My Documents\yxl.html'); //close;end;procedure TForm1.Button1Click(Sender: TObject);begin deletefile('C:\My Documents\321123800418001yxl.html');end;。
2. 如何去编写修改DLL文件
一、DLL文件常识 DLL是Dynamic Link Library的缩写,意为动态链接库。
在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。
一个应用程序可有多个DLL文件,一个DLL文件也可能被几个应用程序所共用,这样的DLL文件被称为共享DLL文件。DLL文件一般被存放在C:WindowsSystem目录下 (DLL文件编辑软件)UltraEdit-32 v13.10+1 官方中文版 二、修改DLL文件的具体应用 在系统的组策略和注册表中,我们可以修改一些键值来优化我们的系统,并加强操作系统的安全性。
可是,对于限制下载、禁止删除文件等功能,我们无法通过上述的操作来完成,这只有通过修改系统DLL文件来实现。 目前,我们通过修改系统的DLL文件,可以实现禁止删除文件、禁止IE下载、禁止IE另存为、禁止文件打开方式等功能。
三、系统中部分DLL文件的功能 1、Browselc.dll IE所需要调用的库文件DLL 结构雏形就是它了 2、Shdoclc.dll 系统窗口及设置等,如删除文件、重命名 3、Shell32.dll 系统窗口及设置等,如删除文件、重命名 4、Cryptui.dll IE控件下载及提示对话框程序 四、修改DLL文件的方法 1、下载DLL文件修改工具EXESCOPE6.3 - 6.4工具 2、获取Browselc.dll、Shdoclc.dll、Shell32.dll和Cryptui.dll这几个链接文件。在找这几个文件时,最好将其他机器的硬盘,挂接在本机中,然后用本机的操作系统启动并复制这几个文件。
3、在修改DLL文件的时候,打开该键值,在右面的对话框中将所要修改的键值禁用即可,不要删除,以备日后恢复(如图) 五、DLL文件修改秘籍 1、禁止下载的修改方法: 打开 Shdoclc.dll 修改资源--对话框---4416,将4416键值禁用即可。 2、禁止网页添加到收藏夹,打开Shdoclc.dll 修改资源--对话框---21400,将该键值禁用即可。
3、禁止恶意网页加载控件,修改Cryptui.dll文件,要同时修改5个地方才能完全禁止 资源--对话框---130 资源--对话框---230 资源--对话框---4101 资源--对话框---4104 资源--对话框---4107 将以各对话框中的相应键值,修改成为禁用就可以了。 4、禁止系统删除文件修改Shell32.dll,这个文件需要修改5个地方才可以禁止系统删除文件。
资源--对话框---1011 资源--对话框---1012 资源--对话框---1013 资源--对话框---1021 资源--对话框---1022 将以上五个地址的键值禁用就可以了! 5、禁止文件被改名,修改shell32.dll,有2个地方需要修改 资源--对话框---1018 资源--对话框---1019 将以上两处的相应键值,修改为禁用就可以了! 6、禁止运行菜单,修改shell32.dll,将资源--对话框---1018键值设置为禁用。 7、禁止系统文件被挪动修改shell32.dll,需要修改4个地方 资源--对话框---1014 资源--对话框---1015 资源--对话框---1016 资源--对话框---1017 8、禁止目标另存为,修改 Shdoclc.dll 文件,需要修改3个地方 资源--菜单--258---257 资源--菜单--258---252 资源--菜单--24641--2268 在这个修改中,我们要把各对应的键值删除。
打开该键值后,右键菜单中有删除。在资源--菜单--24641—2268中,有多项该键值,请逐一删除。
9、禁止自定义文件夹选项修改Shell32.dll 文件,需要修改以下4个地方 资源--菜单--215---28719 资源--菜单--216---28719 资源--菜单--217---28719 资源--菜单--216---28719 找到以上四处键值,直接需要删除后即可,而不是禁用。 10、禁止IE文件夹选项,修改 Browselc.dll 文件,需要修改3个键值 资源--菜单--263 (这里有多个请删除)---41251(删除) 资源--菜单--266( 也有多个请删除)---41329 (删除) 资源--菜单--268---41251 (删除) 在上面的3个键值中,个别键值有多处,请逐一删除。
11、禁止98 文件共享控件,修改 Msshrui.dll,需要修改2个地方 资源--- 对话框---- 1 --- AutoRadioButton 资源--- 对话框---- 30 --- AutoRadioButton 将以上两处的键值禁用即可。其他的选项,可以根据自己的需要进行修改。
找到相应的功能键值,将不需要的功能,禁用就可以了。 12、禁止文件的打开方式,修改 Url.dll,需要修改2个地方 资源--- 对话框--- 7000 资源--- 对话框--- 7005 将以上两处的键值禁用即可。
13、禁止更改系统桌面,修改 Shdoc401.dll,有2处地方需要修改 资源--- 对话框--- 29952--- PushButton:浏览 资源--- 对话框--- 29952--- PushButton:图案 将以上两处的键值禁用即可。 14、禁止系统文件夹自定义,修改 Shd401lc.dll,有2处地方需要修改 资源--- 对话框--- 29957 资源--- 对话框--- 29958 将以上两处的键值禁用即可。
15、禁止文件保存路径及打开,修改 Comdlg32.dll,有2处地方需要修改 资源--- 对话框--- 1547 资源--- 对话框--- 1548 将以上两处的键值禁用即可。 六、注意事项 1、本文以Windows XP/2000操作系统的DLL文件修改为例,并不一定适用于Windows 98操作系统,请在修改DLL文件时注意。
2、在禁止下载的操作中,除修改禁止下载的链接文件Shdoclc.dll外,还要修改禁止文件另存为的链接文件Shdoclc.dll。如果修。
3. 我想写一个dll文件,供大家用
因为我用的是Visual Studio 英文版,所以有些菜单或选项的名称也许会不一样
1. 新增项目时新增一个Windows Library(Windows 类库)
2. 在里面新增一些接口或类
这样编译好后就会产生一个dll,其它的.net项目就可以引用这个dll
另外,你也可以将一个Windows应用程序的项目变成类库
例如我已经有一个Windows应用程序的项目,在vs .net中选中该项目,按鼠标右键,点击属性,打开项目的属性画面
在属性画面的第一个页签就是“应用程序”,那个页签里有一个选项叫“输出类型”,你把输出类型设为“类库”,这样在编译的时候就会产生一个dll,其它.net 项目就可以引用这个dll了
4. 用C语言如何写DLL?
//head file: asd.h
#ifdef _cplusplus
extern "C"{
#else
#endif
#ifdef HEAD_DLL
#define DLL_EXPORT _declspec(dllexport)
#else
#define DLL_EXPORT
#endif
int DLL_EXPORT asd_main(char* file_in, char* file_out);
#ifdef _cplusplus
}
#endif
//C file: asd.c
#include "asd.h"
int DLL_EXPORT asd_main(char* file_in, char* file_out)
{
FILE *in, *out;
in = fopen(file_in,"rb");
if(in == NULL)
return 0;
out = fopen(file_out,"wb");
if(out == NULL)
return 0;
//add code what you want:
。
}
5. 如何编写一个DLL??
现在我用了Database和Query两种控件可是在连接时总是让我输入UserName和PassWord但是我已把Database的Loginprompt设置为了false;并且输入了DATABASE NAME=USER NAME=zgcODBC DSN=cssparkOPEN MODE=READ/WRITEBATCH COUNT=200LANGDRIVER=MAX ROWS=-1SCHEMA CACHE DIR=SCHEMA CACHE SIZE=8SCHEMA CACHE TIME=-1SQLPASSTHRU MODE=SHARED AUTOCOMMITSQLQRYMODE=ENABLE SCHEMA CACHE=FALSEENABLE BCD=FALSEROWSET SIZE=20BLOBS TO CACHE=64BLOB SIZE=32Password=zgc7622但是在运行时依然出现请输入的提示这是为何呢???。
转载请注明出处育才学习网 » 怎么写dll文件
育才学习网