近日遇到问题,给客户安装软件涉及视频等音影播放,安装软件启动过程遇到这样问题: 分析报错原因: 没有注册类别 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG) 查找原因: Interop.WMPLib.dll  AxInterop.WMPLib.dll 程序内含private AxAPlayer3Lib.AxPlayer axPlayer; 最初出现问题分析思路:1.先注册两个动态库,注册失败: 两个动态库是不能直接注册. (背景:之前软件刚接手问过上…
1.打开文件,打开需要注册的OCX文件或dll文件,2.然后根据需要进行OCX文件或DLL文件的注册和反注册 DLL.OCX注册方法--文件Regsvr32用法及情况介绍 使用过activex的人都知道,activex不注册是不能够被系统识别和使用的,一般安装程序都会自动地把它所使用的activex控件注册,但如果你拿到的一个控件需要手动注册怎么办呢?如果修改注册表那就太麻烦了,在windows的system文件夹下有一个regsvr32.exe的程序,它就是windows自带的activex注…
①DLL文件是怎么产生的 许多应用程序被分割成一些相对独立的动态链接库,放置于系统中,就产生了DLL文件. ②DLL文件是什么 DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型.在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中.当我们执行某一个程序时,相应的DLL文件就会被调用.一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的D…
1.win7 下注册dll文件失败,提示模块“xx.dll”已加载,但找不到入口点DllRegisterServer 原因:该dll文件非可注册组件,没有包含DllRegisterServer函数,可用depend.exe 查看 2.win7 下注册dll文件失败,提示模块“xx.dll”已加载,但对DllRegisterServer的调用失败,错误代码为0x80020009 原因:win7的权限问题,可用以下步骤解决.但win7下把dll放入system32文件下,用下面方法行不通 开始--所…
什么是lib文件,lib和dll的关系如何 (2008-04-18 19:44:37)    (1)lib是编译时需要的,dll是运行时需要的. 如果要完成源代码的编译,有lib就够了. 如果也使动态连接的程序运行起来,有dll就够了. 在开发和调试阶段,当然最好都有. (2)一般的动态库程序有lib文件和dll文件.lib文件是必须在编译期就连接到应用程序中的,而dll文件是运行期才会被调用的.如果有 dll文件,那么对应的lib文件一般是一些索引信息,具体的实现在dll文件中.如果只有lib…
[转载]解析WINDOWS中的DLL文件---经典DLL解读 在Windows世界中,有无数块活动的大陆,它们都有一个共同的名字——动态链接库.现在就走进这些神奇的活动大陆,找出它们隐藏已久的秘密吧!  初窥门径:Windows的基石 随便打开一个系统目录,一眼望去就能看到很多扩展名DLL的文件,这些就是经常说的“动态链接库”,DLL是Dynamic Link Library(即“动态链接库”)的缩写.从Microsoft公司推出首个版本的Windows以来,动态链接库就一直是这个操作系统的基础…
出处:https://blog.csdn.net/weiaipan1314/article/details/52252478 什么是lib文件,lib和dll的关系如何 (2008-04-18 19:44:37)    (1)lib是编译时需要的,dll是运行时需要的. 如果要完成源代码的编译,有lib就够了. 如果也使动态连接的程序运行起来,有dll就够了. 在开发和调试阶段,当然最好都有. (2)一般的动态库程序有lib文件和dll文件.lib文件是必须在编译期就连接到应用程序中的,而dll…
最近需要调用MSCOMM32.OCX控件,但是ABAP调用过程中发现无法同时发送多条记录,则需调整实现方式: a.创建DLL文件封装MSCOMM控件相关属性及方法 b.系统注册DLL文件 c.ABAP调用DLL文件相关属性及方法 这一部分内容主要是将VB类模块的创建过程记录下: 1.打开VB,创建ActiveX DLL文件 2.修改工程名为MSCommPrj 3.修改类模块名称为msCommCls 4.引用MSCOMM32.OCX组件 菜单:工程->引用->浏览 查找MSCOMM32.OCX文…
手动解决dll文件无法删除的终极方法 手动解决dll文件无法删除的终极方法 相信大家都遇见过:在删除一些软件的时候弹出某某文件正在运行或磁盘写保护不能删除这样的报错提示吧.而常常删除不掉的都一些后缀为.dll的文件.到底这个dll文件是什么文件,如何才能知道是哪些程序在调用这个dll文件呢? [基础理论]dll文件英文名称为Dynamic Linking Library,以下简称dll,中文名字"动态链接程序库"文件.在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分…
 DLL是Dynamic Link Library的缩写,意为动态链接库.DLL文件一般被存放在C:WindowsSystem目录下.DLL是一个包含可由多个程序同时使用的代码和数据的库. 在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中.当我们执行某一个程序时,相应的DLL文件就会被调用.一个应用程序可有多个DLL 文件,一个DLL文件也可能被几个应用程序所共用,这样的DLL文件被称为共享DLL文件. 例如,在 Win…
dll文件你听说过吗?那怎样把那些删不掉的东西删掉呢?请看.... 老听网友说某某文件删不掉啊.之类的.而且有很多都是dll文件.删除的时候总是提示,"正在使用"或者是"拒绝访问权"等等之类的. 虽然解决这个问题的方法有很多种.而且也可以把他删除,但是网友们有没有想过是为什么删不掉呢??这是因为你运行的某个程序正在调用这个dll文件.正在使用的文件是当然不可能给你删除的.那么,到底是哪个程序在调用这个dll文件呢.我教大家一个方法可以把那个程序很容易的找出来..  …
在工作过程中,我们有可能遇到这样的问题:公司发给客户的软件包突然报错了,但是你知道哪里报错了,而这个代码已经编译成DLL文件了,源代码不在自己这里.怎么办呢?还好现在有Reflexil插件,这个插件只要是编译IL中间程序的.它可以对解析后的DLL文件进行代码修改进行编译生成DLL.下面简单的介绍一下它怎么使用. 第一步: 下载Reflector 8和Reflexil 1.6,装好后将Reflexil的插件DLL文件加载到Reflector中 具体操作:Tools->Add-Ins->+->…
做项目的时候,发现这个Frame很好用,为了省空间.调用和修改方便,就将Frame封装到dll(动态链接库)里面,确实很好使. 效果图如下: 上图是临时测试用的,忘了将Frame的align设置成alClient,不过刚好可以看出来白色区域是从dll里加载的Frame,还调用了Frame的按钮单击事件. 下面是大概的建立流程: 1.File -> New -> Other -> Delphi Projects -> 新建一个Dll文件 2.然后继续 File -> New -…
转载: 有时候你会需要一个DLL是强命名的,比如你想把这个文件放到GAC里面.如果这是一个第三方的DLL,你没有源代码,这会是一件比较麻烦的事情.有一个方法可以解决这个问题. 在VS.NET的命名行窗口下,输入如下的代码. 1 ,生成一个KeyFile sn -k keyPair.snk 2, 得到程序集的MSIL ildasm SomeAssembly.dll /out:SomeAssembly.il 3 ,为了避免冲突,把原来的DLL文件改名 ren SomeAssembly.dll Som…
对于自己制作的.DLL文件,一直没有比较好的调试方法,其实是知道的太少. 下面就说说VC6.0下面 怎么调试DLL文件: 首先得有一个调用DLL文件的可执行程序,然后调用这个可执行程序. 在工程上 右键  settings  在弹出的对话框中,选择debug标签,然后设置executable for debug session:  在这里面填写可执行程序的路径 eg:C:\Program Files\Java\jdk1.6.0_15\bin\java.exe Working directory …
转自:https://blog.csdn.net/dcrmg/article/details/53427181 静态链接.动态链接 静态库和动态库分别应用在静态链接方式和动态链接方式中,所谓静态链接方式是指在程序执行之前完成所有的链接工作,把静态库一起打包合入,生成一个可执行的目标文件(EXE文件).所谓动态链接方式是指可执行目标文件在执行过程中才去加载调用相关功能函数,即在需要时才按需调用,是动态使用的. 静态库.动态库.隐式链接和显示链接中操作对象都是库,那么什么是库? 库 库是已经提前写好…
.h(头文件) .lib(库文件) .dll(动态链接库文件) 之间的关系和作用的区分   .h头文件是编译时必须的,lib是链接时需要的,dll是运行时需要的. 附加依赖项的是.lib不是.dll,若生成了DLL,则肯定也生成 LIB文件.如果要完成源代码的编译和链接,有头文件和lib就够了.如果也使动态连接的程序运行起来,有dll就够了(放在Debug文件夹里).在开发和调试阶段,当然最好都有. .h .lib .dll三者的关系是: H文件作用是:声明函数接口 DLL文件作用是: 函数可执…
简介         在之前的章节中,笔者曾介绍过有关于远程线程注入的知识,将后门.dll文件注入explorer.exe中实现绕过防火墙反弹后门.但一个.exe文件总要在注入时捎上一个.dll文件着实是怪麻烦的,那么有没有什么方法能够不适用.dll文件实现注入呢?         答案是有的,我们可以直接将功能写在线程函数中,然后直接将整个函数注入,这个方法相较之于DLL注入会稍微复杂一些,适用于对一些体积比较小的程序进行注入.但是要注意动态链接库的地址重定位问题,因为正常的文件一般会默认载入…
机房合作版中第一次使用了模板方法,实现了类似窗体的界面和代码的复用..窗体继承有两种方法,一种是通过继承选择器从已编译的程序集合里选择,另一种则是通过DLL文件的方式继承.个人觉得DLL还是比较方便的,也更符合解耦合的要求.假设模板有一点变更的话,只要改了从新编译就好了,好吧谁用谁知道.那么,这里就看看如何使用DLL来 第一步,编写DLL文件,封装父窗体 打开vs2010,新建项目,选择类库,然后删除它自带的类.这里我的父窗体是编辑好的,直接右击项目添加现有项到项目中.这些个步骤,就不需要上图了…
转自:http://bbs.elecfans.com/jishu_469502_1_1.html   LabVIEW调用DLL文件 LabVIEW支持通过调用DLL文件的方式与其它编程语言混合使用.比如,在实际的工程项目中,用户可以用C++语言实现软件的运算部分,并把这些功能构建在DLL文件中,然后再使用 LabVIEW编写程序的界面部分,并通过调用编写好的DLL来调用运算部分的功能. LabVIEW 中是通过Call Library Function Node(CLN)节点来完成DLL文件调用…
项目中有一个.NET Core控制台项目叫ConsoleCoreApp,写好代码后准备发布: 结果发布后生成的是一个dll文件...为不是一个exe的可执行文件: 后来了解到.NET Core的项目分为两种发布方式,一种叫Framework-dependent deployments (FDD),还有一种叫Self-contained deployments (SCD),这两种发布有何区别可以查看微软的官方文档. 而默认情况下.NET Core控制台项目的发布方式为Framework-depen…
有些.net dll我们没有源码,如果要修改某些东西,可以用ilasm.exe反编译为il代码,修改后再编译回dll ilasm通常放在以下路径 C:\Windows\Microsoft.NET\Framework\v4.0.30319\ilasm.exe 反编译dll 用ilasm打开一个dll文件,然后点击[文件]->[转储] 点击[确定]保存为一个il文件 用vs打开il文件进行修改,然后用以下命令,重新编译dll文件 如果反编译出来的dll带了res资源文件,编译回去的时候需要加参数/R…
静态链接.动态链接 静态库和动态库分别应用在静态链接方式和动态链接方式中,所谓静态链接方式是指在程序执行之前完成所有的链接工作,把静态库一起打包合入,生成一个可执行的目标文件(EXE文件).所谓动态链接方式是指可执行目标文件在执行过程中才去加载调用相关功能函数,即在需要时才按需调用,是动态使用的. 静态库.动态库.隐式链接和显示链接中操作对象都是库,那么什么是库? 库 库是已经提前写好的.现有的,可以复用的代码,本质上来说库是一种经过编译生成的可执行代码的二进制形式,可以被操作系统载入内存执行.…
转载:https://blog.csdn.net/weixin_44536482/article/details/91519413 vs工程生成dll文件及其调用方法                                                                                                                                                                       …
简介 在之前的章节中,笔者曾介绍过有关于远程线程注入的知识,将后门.dll文件注入explorer.exe中实现绕过防火墙反弹后门.但一个.exe文件总要在注入时捎上一个.dll文件着实是怪麻烦的,那么有没有什么方法能够不适用.dll文件实现注入呢?         答案是有的,我们可以直接将功能写在线程函数中,然后直接将整个函数注入,这个方法相较之于DLL注入会稍微复杂一些,适用于对一些体积比较小的程序进行注入.但是要注意动态链接库的地址重定位问题,因为正常的文件一般会默认载入kernel32…
创建Dll文件 首先使用VS 2019创建Dll项目,创建项目时选择"类库",如下图 在项目中创建类文件,添加测试代码: namespace PlantSim_C_Interface_Test { public class CommunicateWithPS { public string readValue(string index) { switch (index) { case "a": return "The return value of a i…
选择工程,右键-工程属性 其中: VC++目录 -->包含目录,对所有的项目及未来新建的项目都有效 c/c++-->常规-->附加包含目录,仅对当前项目有效 绝对路径设置方法: 在VS工程中,添加c/c++工程中外部头文件及库的基本步骤: 1.添加工程的头文件(.h)目录:工程--属性--配置属性--c/c++--常规--附加包含目录: 添加头文件存放目录 2.添加文件引用的lib静态库路径: 1)工程--属性--配置属性--链接器--常规--附加库目录:加上lib文件存放目录. 2)然…
64位系统下注册32位dll文件 在64位系统里注册32位软件所需的一些dll会提示不兼容,大概因为32 位进程不能加载64位Dll,64位进程也不可以加载32的导致. 若要支持的32 位和64 位COM 注册和程序共存状态,需要WOW64 子系统. 故可以把这些32的dll.ax从C:\Windows\system32\复制到C:\Windows\sysWOW64\下注册即可. 如:regsvr32 C:\Windows\sysWOW64\MakerCom.dll…
使用命令行注册dll文件到gac的方法: gacutil.exe -i D:\SPFormLoginProject.dll 删除gac的dll方法: gacutil /u "SPFormLoginProject, Version=1.0.0.0,Culture=neutral, PublicKeyToken=249127c6e9bea078"…
@echo off echo 运行后,能重新注册系统所有的dll文件, echo 能解决内存读写错误的问题 pause echo on for %%1 in (%windir%/system32/*.dll) do regsvr32.exe /s %%1 echo 注册dll完成 pause…