关于LIBEAY32.DLL的问题

合集下载

libeay32源码编译

libeay32源码编译

libeay32源码编译
libeay32是一个加密库,也被称为OpenSSL。

以下是编译libeay32源代码的步骤:
1. 下载OpenSSL源代码。

你可以在OpenSSL的官方网站上下载最新的源代码。

2. 解压源代码。

使用你喜欢的压缩软件,如WinRAR或7-Zip,解压下载的文件。

3. 安装依赖项。

编译OpenSSL需要一些开发工具和库。

对于Windows 系统,你需要安装Microsoft Visual Studio(MSVC)和Python。

对于Linux系统,你需要安装GCC,Python,和Perl。

4. 配置OpenSSL。

打开一个命令提示符或终端,进入OpenSSL源代码的目录,运行以下命令:
```bash
mingw32-make clean
mingw32-make depend
mingw32-make
```
5. 安装OpenSSL。

运行以下命令:
```bash
mingw32-make install
```
6. 检查安装。

在命令提示符或终端中,运行以下命令:
```bash
openssl version
```
如果输出的版本号是你刚刚安装的版本,那么恭喜你,你已经成功编译了libeay32。

请注意,以上步骤可能会因你的操作系统和开发环境的不同而略有不同。

如果你遇到任何问题,我建议你查阅OpenSSL的官方文档或者寻求社区的帮助。

php5.4.0安装(In windows),配置

php5.4.0安装(In windows),配置

php5.4.0安装(In windows),配置Apache,MySQL,phpMyAdmin,zendOptimizer,xdebug分类:Php 2011-09-01 21:47 16615人阅读评论(49) 收藏举报上上周5.3.7的MD5漏洞,官方4天后更新了php5.3.8 正好windows的系统还原了,于是安装最新的php5.3.8版本1: 下载php5.3.8 for windows.说明一下,官网的windows版本有2种,上面是非线程安全的VC9 x86 Non Thread Safe , 缺少了php5apache2_2.dll 这些文件, 大小是14.93M .下面那个Thread Safe线程安全版的.才是我们需要的,大小是15.06M猛击这里下载php5.3.8 for windows VC9 X86猛击这里下载php5.4.0 for windows VC9 X86至于VC6和VC9,一个支持apache一个支持IIS.但是试了下VC9用在apache上没问题 .线程安全Thread Safe(TS)和非线程安全(NTS),就是在执行时是否进行线程安全检查,以防止有新要求就启动新建成的CGI执行方式,进而耗尽系统资源.执行方式有ISAPI和FastCGI,前者ISAPI(Internet Server Application Programming Interface)是以DLL动态链接库的形式使用,在用户请求后执行,在处理完一个用户请求后不会马上消失,因此需要进行线程安全检查.以此来提高程序的执行效率. 所以以ISAPI的方式来执行PHP,最好选择Thread Safe 版本也就是我们下载的版本,对应的apache的设置在第4段末尾有.FastCGI是以单一线程执行,所以不需要进行线程安全检查,因为没有了线程安全检查,反而加快了PHP的执行效率.所以如果用FastCGI来执行PHP,最好选择Not Thread Safe版本 .而在apache中就需要设置成下面的.(这里我们配置的环境不用设置)[php]view plaincopyprint?1.ScriptAlias /php/ "F:/php/PHP5"2.Action application/x-httpd-php "/php/php-cgi.exe"源码/get/php-5.3.9.tar.gz/from/a/mirror直接把这个下下来后解压了覆盖就可以了然后把下面第5步重新做一下重启apache就OK. 注意覆盖的时候要先停止掉apache.今天是2012年2月3日,昨天php官方修复了几个最近爆的漏洞后,发布了5.3.10版本地址在这里/downloads/releases/php-5.3.10-Win32-VC9-x 86.zip源码在这里/get/php-5.3.10.tar.gz/from/a/mirror直接把这个下下来后解压了覆盖就可以了然后把下面第5步重新做一下重启apache就OK. 注意覆盖的时候要先停止掉apache.今天是2012年3月1日,php官方发布了5.4.0版本地址在这里/downloads/releases/php-5.4.0-Win32-VC9-x8 6.zip源码在这里/get/php-5.4.0.tar.gz/from/a/mirror直接把这个下下来后解压了覆盖就可以了然后把下面第5步重新做一下重启apache就OK. 注意覆盖的时候要先停止掉apache.!!!!!!!这里要注意下,更新到5.4.0后xdebug 和memcache的dll就会失效.今天是3月20日,xdebug的官方更新来一个beta版的dll,大家可以按照最后的说明去下它来配合php.2: 解压后,以前的php.ini是由php.ini-dist文件转变过来的php5.3.8里面这个文件变成了php.ini-developmentphp.ini-development 意味着是开发版本的配置.php.ini-production 是网站发布时的配置.这里我们用开发版php.ini-development 修改成php.ini后打开.3: 下面修改php.ini的配置我的php5.3.8是放在了F:/php/php5 文件夹下面修改下面的为以下内容()[php]view plaincopyprint?1.short_open_tag = On 短标签<? ?>开启2.asp_tags = On asp的短标签<* *>开启3.register_globals = off 超级全局变量,建议关闭,打开它会造成安全上的漏洞4.post_max_size= 8M POST提交时候的最大数据提交量5.magic_quotes_gpc = off php自带的安全验证,建议开启6.file_uploads = On php支持文件上传7.upload_max_filesize = 2M 文件上传最大值 2M8.max_file_uploads = 20 同时并发上传的最大文件数1.extension_dir="F:\php\php5\ext"去掉以下的extension前面的分号; 使其开启[php]view plaincopyprint?1.extension=php_bz2.dll2.extension=php_curl.dll3.4.extension=php_gd2.dll5.extension=php_gettext.dll6.7.extension=php_mbstring.dll8.extension=php_mysql.dll9.extension=php_mysqli.dll10.11. extension=php_openssl.dll12. extension=php_pdo_mysql.dll13.14. extension=php_sockets.dll15.16. extension=php_xmlrpc.dll1.date.timezone = prc1.PHPIniDir "F:/php/php5"1.LoadModule php5_module "F:/php/php5/php5apache2_2.dll"(注意下,随着php版本的更新.这个php5apace2_2.dll的模块,可能会改名!比如现在最新的是php5.4里面的php5apache2_3.dll)在大约380行Addtype那里加入[php]view plaincopyprint?1.AddType application/x-httpd-php .php .php5 .php4 .php3 .phtml .phpt2.AddType application/x-httpd-php-source .phps老版本的php是有一个libmysql.dll文件的,新版的libmysql.dll这个文件已经移交给了MySQL的开发团队,所以大家不用费心去找这个文件了.它就在MySQL安装目录的lib文件夹下. 复制一份到C:/windows/system32即可在你的apache指定的www目录下新建一个phpinfo()文件.输入[php]view plaincopyprint?1.<?php2.phpinfo();3.?>1.<?php2. $conn=mysql_connect("localhost","root","123456") or die (mysql_error());3. if(!$conn) echo "Failed!";4. else echo "Successful!";5. print_r ($conn);6. mysql_close();7.?得到Successful! 表明数据库链接成功7:安装phpMyAdmin3.4.0解压下来后把phpmyadmin放入www目录找到phpmyadmin文件夹里的/libraries/config.default.php修改以下内容[php]view plaincopyprint?1.$cfg['PmaAbsoluteUri'] = 'http://localhost/phpmyadmin/';2.$cfg['Servers'][$i]['host'] = 'localhost';3.$cfg['Servers'][$i]['auth_type'] = 'config'; //如果是网络上则需要改成cookie4.$cfg['blowfish_secret'] = ''; //此项只有当上面修改为cookie后,这里必须修改,内容自定,比如你的域名比如5.$cfg['Servers'][$i]['user'] = 'root'; //登录账户6.$cfg['Servers'][$i]['password'] = '123456'; //密码7.$cfg['DefaultLang'] = 'zh'; //这是默认语言为中文.8.$cfg['DefaultCharset'] = 'utf8'; //这是修改编码方式,可以修改成gb2312.这个问题首先查看mysql是否开始.如果开启了,把php里面的 libmcrypt.dll 复制一份到windows/system32下. 并且检查php.ini文件里面extension=php_mcrypt.dll是否开启.如果都不行,检查系统环境变量,在我的电脑右键属性, 高级环境变量里面的系统变量Path里面加入你的php安装路径;F:\php\php5 注意有分号隔开b:如果phpMyAdmin登录出现下面的错误.The mysqli extension is missingThe mysqli extension is missing. Please check your PHP configuration. <ahref="Documentation.html#faqmysql" target="documentation"><img class="icon"src="./themes/original/img/b_help.png" width="11" height="11" alt="Documentation" title="Documentation" /></a>复制php/ext/php_mysqli.dll 到windows/system32 后,即可进入9: zendOptimizer,xdebug,WinCacheGrind加速调试的安装:zend加速器安装很简单.exe文件,直接双击就行了.WinCacheGrind也是一样.地址就不贴了,大家辛苦搜下.这里只说下xdebug的安装.首先打开http://127.0.0.1/phpinfo.php再打开/find-binary.php然后,把phpinfo.php解析后的内容ctrl+A,ctrl+c复制,然后ctrl+v粘贴在/find-binary.php这个里面1.[Xdebug]2.zend_extension="F:\php\php5\ext\php_xdebug.dll"3.xdebug.auto_trace=On4.xdebug.collect_params=On5.xdebug.collect_return=On6.xdebug.profiler_enable=on7.xdebug.trace_output_dir="F:\php\php5\xdebug"8.xdebug.profiler_output_dir="F:\php\php5\xdebug" stop apache2.2 start apache2.2。

Win10手动注册注册表提示regsvr32加载控件失败解决方案

Win10手动注册注册表提示regsvr32加载控件失败解决方案

Win10手动注册注册表提示regsvr32加载控件失败解决方案导读:regsvr32加载控件失败怎么办?当我们在使用计算机时,有时候会发现有些注册表没有注册,需要手动进行注册,但是在cmd命令中,输入命令regsvr32 xx.dll,运行提示模块数据加载失败,这怎么办呢?下面小编就和大家分享下Win10手动注册注册表提示regsvr32加载控件失败解决方案。

regsvr32加载控件失败解决方法:1、在某一软件运行,提示报错信息,看了看错误,大概是因为HTDui.dll模块没有注册的原因造成的。

2、经过查找,在软件根目录找到该.dll文件,确定注册文件路径和注册名称。

3、在搜索框中输入cmd,右击以管理员身份运行。

4、命令窗口输入:regsvr32 C:\geostar\public\kerel\HTDicUI.dll,回车运行报错,运行模块与运行的Windows版本不兼容。

提示错误是因为在64位系统中,运行Regsvr32注册DLL运行是的System32文件夹中的Regsvr32.exe,而这个文件是64位版本的,命令需要的是32位版本的Regsvr32,所以会提示出错。

5、在32位系统中,有system和system32两个文件夹,分别存放16位和32位的dll文件。

按照32位的系统命名规则,64位应该有一个叫做:system64的文件夹来用来存放64位DLL文件,但实际上却没有system64这个文件夹,而是一个叫做为SysWOW64的文件夹,而且syswow64也不是存放64位文件的,而是用来存放32位的DLL文件。

若要解决此问题,就要运行Syswow64文件夹内的Regsvr32.exe。

命令提示符里输入:cd windowssyswow64 这个命令是将目录设置到syswow64这个文件夹,之后运行的命令就会在这个文件夹内找文件夹,输入后按回车,如下图:6、然后执行步骤四中的命令。

Joomla账号管理与权限

Joomla账号管理与权限

Joomla帐户管理与权限一、后台--用户设置二、后台--创建用户三、组群的创建和权限设置四、如何实现用电子邮箱来发送Joomla信件五、附录 openssl返回首页1.进入后台→用户(User)→用户管理(User Manager)→选项(Options)→组件(Component)2.设置组件参数并保存可以按实际要求来设置,其中归类群组在下一节中有介绍返回首页1.进入后台→用户(User)→用户管理(User Manager)→新建(New)2.填写帐户详情3.勾选指定的用户群组4.用户群组(系统默认群组)介绍返回首页Public为普通访客(公共访客)Shop Suppliers(Example)和Customer Group (Example)是举例新建的群组一、前台用户组分为:1.注册用户组(Registered):这个是大多数人会用到的,当网站上有些内容需要注册用户才能浏览时,就用到这个组。

我们可以像上面说的在后台创建也可以在前台注册,注册出来的帐号都是有着一样的权限。

2.作者(Author):拥有注册用户的所有权限,可以写和修改自己的文章。

3.编辑 (Editor):拥有作者的所有权限,并且可以在前台修改别人写的文章。

4.发布者(Publisher):拥有编辑的所有权限,并且可以发布文章在网站前台显示出来。

说明:编辑就没有发布文章的权限,作者不可以修改别人的文章。

二、后台用户组分为:1.管理员(Manager):能够进入后台,并且可以新建文章。

但在后台不能够管理用户,不可以安装模块和组件,也没有权限将一个用户升级成超级用户或者编辑一个超级用户,不可以修改Joomla的全局设置,也不可以发送群发邮件给所有用户,没有权限来改变和安装模板和Joomla的语言文件。

2.高级管理员(Administrator):拥有管理员的所有权限,并且可以新建文章,可以安装模块和组件。

但是对以下操作也是不允许的:(1)将一个用户升级成超级用户或者编辑一个超级用户(2)修改Joomla的全局设置(3)也不可以发送群发邮件给所有用户,没有权限来改变和安装模板和Joomla的语言文件。

(asp.net)PayPal案例的关键源码代码 PayPal集成 API接口

(asp.net)PayPal案例的关键源码代码  PayPal集成 API接口

轻轻松松集成PayPal标准版Paypal国际版网站集成简易教程(一):序言前段时间接到一个外贸网站的项目,集成paypal支付接口的,对象是海外用户,全部用US的信用卡结算。

国内有个paypal的中文版,叫贝宝,不过只支持人民币之间的结算,而且提供的功能不多。

所以只能使用paypal国际版,也就是,习惯性的google 了一下相关资料,发现关于接口的中文文档并不多,也不详细,只好自己上研究,还好paypal上的资料非常齐全,而且还提供了开发者沙盒(sandbox),相比之下,国内流行的支付宝还有很长的路要走啊。

项目结束的时候就有想法写一篇网站集成paypal的简易教程,方便以后的各位开发者,毕竟看长篇英文资料是很头痛的事情^_^。

一直到昨天期末考才结束,所以今天开始写这个教程,其实内容也不多,可能还算不上教程,只能算经验吧。

主要分为序言、支付按钮、返回信息方式(IPN&PDT)、实例四部分组成,预计在三天内完成,如果有新内容我临时再加吧。

接下来一篇将会介绍如何在网站上快速加入paypal支付按钮。

Paypal国际版网站集成简易教程(二):快速加入支付按钮本篇主要介绍如何在你的网站上快速加入paypal支付按钮,通过这个按钮,人们可以方便快速的付款到你的paypal帐户。

首先,你需要注册一个paypal帐户,帐户类型分为Personal(个人)、Premier(高级)和Business(商业),他们的差别对于开发者来说主要是返回的信息,Personal的不能使用IPN和PDT等商家工具,即不能获取交易信息,但是Personal帐户收款无需手续费;Premier和Business当然就提供了IPN和PDT功能,能够在客户支付成功后,将交易信息传给指定的网站,用来二次使用。

Premier和Business使用上的差异我不是很清楚,应该是月收款额和手续费上的区别吧。

这里插进来介绍一下paypal sandbox,也就是沙盒,是paypal提供给开发者的一个工具,非常好用,你可以在https:///注册和使用它。

libeay32.dll文件丢失电脑打不开怎么办

libeay32.dll文件丢失电脑打不开怎么办

libeay32.dll文件丢失电脑打不开怎么办
libeay32.dll是一个重要的系统文件,丢失了此文件就会导致电脑打不开等问题。

下面由店铺为你整理了libeay32.dll文件丢失电脑打不开怎么办的相关方法,希望对你有帮助!
libeay32.dll文件丢失电脑打不开解决方法如下
常见问题:
"提示无法找到libeay32.dll文件" ,
这是因为被病毒感染相关文件导致,一旦杀毒软件删除被感染的文件,就会导致相关文件缺失,导致运行游戏时提示缺少libeay32.dll 等;libeay32.dll丢失游戏常用软件运行不起来,或者报错。

libeay32.dll文件丢失电脑打不开解决方法1
在计算机电脑管家的电脑诊所功能针对软件专区可以修复文件缺失问题,搜素libeay32.dll,一键修复,即可完成。

libeay32.dll文件电脑打不开解决方法2
从朋友电脑上拷贝或者到网上下载文件,
放到C:\WINDOWS\SYSTEM32文件夹下。

注意系统兼容的问题;
兼容问题:
在命令栏里输入命令“regsvr32 LIBEAY32.dll”进行安装文件;
如果不兼容,就不成功;
libeay32.dll文件电脑打不开解决方法3
重新安装系统(不推荐)。

openssl安装及使用图解

openssl安装及使用图解

Openssl安装及使用一软件Windows下需要用到的软件•C++编译器编译器就是将“高级语言”翻译为“机器语言(低级语言)”的程序。

一个现代编译器的主要工作流程:源代码(source code) → 预处理器(preprocessor) → 编译器(compiler) → 汇编程序(assembler) → 目标代码(object code) → 链接器(Linker) → 可执行程序(executables)。

c++编译器是一个与标准化C++高度兼容的编译环境。

这点对于编译可移植的代码十分重要。

编译器对不同的CPU会进行不同的优化。

•ActivePerl一个perl脚本解释器。

其包含了包括有Perl for Win32、Perl for ISAPI、PerlScript、Perl Package Manager四套开发工具程序,可以让你编写出适用于unix,windows,linux系统的CGI程序来。

安装的只是perl的一个解释程序啦,外观上也不会发生什么变化,你在windows的cmd界面里输入perl -v可查看你所安装的版本。

在你编译perl程序时会用到它。

法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。

•MASM 8.0•MASM是微软公司开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发,编译速度快,支持80x86汇编以及Win32Asm是Windows下开发汇编的利器。

它与windows平台的磨合程度非常好,但是在其他平台上就有所限制,使OpenSSLOpenSSL是一个强大的安全套接字层密码库,Apache使用它加密HTTPS,OpenSSH使用它加密SSH,它还是一个多用途的、跨平台的密码工具。

OpenSSL整个软件包大概可以分成三个主要的功能部分:密码算法库、SSL协议库以及应用程序。

OpenSSL的目录结构自然也是围绕这三个功能部分进行规划的。

对称加密算法

对称加密算法

实验一:对称加密算法实验对称算法:实验目的:(1)了解对称算法的基本工作流程。

(2)掌握对称算法的使用方法。

硬件环境:Intel Core i3 CPU 2.67GHz4GRAM软件环境:VS2010PerlopenssLMyeclipse 10.0实验步骤:(1)认识OpenSSL工具包。

(2)用简短的程序代码演示:分组加密算法(DES、AES)和流密码算法(RC4)的使用,其中包括分组算法的四种应用模式ECB、CBCCFB、OFB。

1.获得OpenSSL到OpenSSL的网站即可下载当前版本的OpenSSL源代码压缩包。

最新版本为openssl-1.0.1e.tar.gz2. 编译工具编译OpenSSL需要Perl和C编译器。

Perl在Windows下使用Active Perl。

在Windows下可以使用Visual C++ 编译器。

3. 编译和安装步骤在Windows中在所有程序->visual studio 2010->visual studio tools->visual studio命令提示:>cd d:\openssl>perl Configure VC-WIN32>>ms\do_ms>nmake -f ms\ntdll.mak>cd out32dll>..\ms\test编译结果得到头文件、链接库、运行库和openssl.exe工具。

头文件位于./inc32或者./inculde目录,有一个openssl子目录,内有几十个.h文件。

链接库即./out32dll目录中的libeay32.lib 和ssleay32.lib,分别是密码算法相关的和ssl协议相关的。

运行库是./out32dll目录中的libeay32.dll 和ssleay32.dll,和链接库相对应。

在./out32dll中还有一个工具openssl.exe,可以直接用来测试性能、产生RSA密钥、加解密文件,甚至可以用来维护一个测试用的CA。

如何解决电脑上无法打开的dll文件

如何解决电脑上无法打开的dll文件

如何解决电脑上无法打开的dll文件电脑上无法打开的dll文件的技术解决方案在日常使用电脑的过程中,有时候我们会遇到无法打开dll文件的情况。

这个问题很常见,但解决它可能需要一定的专业技术知识。

本文将介绍一些常见的解决方案,希望能够帮助读者解决这一问题。

1. 确认dll文件是否存在问题当我们遇到无法打开dll文件的问题时,首先要确认该dll文件是否存在问题。

有时候dll文件可能被删除、损坏或被其他程序占用。

我们可以通过在命令提示符下使用"sfc /scannow"命令来扫描和修复系统文件。

此外,也可以使用一些专业的系统优化工具来检测和修复dll文件问题。

2. 更新操作系统和驱动程序有时候,无法打开dll文件的问题可能是由于操作系统或驱动程序的问题引起的。

所以,及时进行操作系统和驱动程序的更新是一个解决这一问题的重要步骤。

我们可以通过使用操作系统提供的自动更新功能来完成这一操作,也可以手动下载和安装最新的操作系统和驱动程序。

3. 使用专业的dll修复工具如果上述方法无法解决问题,那么我们可以考虑使用一些专业的dll 修复工具。

这些工具可以扫描系统并自动修复损坏的dll文件。

在使用这些工具之前,建议先备份重要文件和系统。

4. 检查病毒和恶意软件有时候,电脑上无法打开dll文件的问题可能是由于病毒或恶意软件的感染引起的。

因此,我们应该定期检查电脑是否感染了病毒或恶意软件,并使用杀毒软件和防火墙保护我们的电脑。

在发现病毒或恶意软件后,我们需要及时清除并修复受损的dll文件。

5. 考虑重新安装软件如果上述方法都无法解决问题,那么我们可以考虑重新安装相关的软件。

有时候dll文件无法打开是由于软件安装不完整或损坏引起的。

重新安装软件可以重新初始化相关的dll文件,解决无法打开dll文件的问题。

总结无法打开电脑上的dll文件是一个常见的问题,但也是一个有一定专业深度的问题。

通过确认dll文件是否存在问题、更新操作系统和驱动程序、使用专业的dll修复工具、检查病毒和恶意软件,以及考虑重新安装软件等解决方案,我们可以解决无法打开dll文件的问题,并保证电脑的正常运行。

Win7系统当中l两种“libeay32.dll文件丢失”的解决方法

Win7系统当中l两种“libeay32.dll文件丢失”的解决方法

Win7系统当中l两种“libeay32.dll文件丢失”的解决方法
两种“libeay32.dll文件丢失”的解决方法。

Win7系统当中libeay32.dll文件丢失解决方法:
解决方法一
1、遇到这样的情况,有几种解决方法,可根据自已当是情况来选择,最简单的方法是直接在网上下载一个libeay32.dll文件,注意,要与自已当前系统版本相符。

如图所示:
2、下载之后,解压出来,然后将libeay32.dll文件放到C:\Windows\System32文件夹下。

如图所示:注意:如果是64位的系统,则放到C:\Windows\syswow64文件夹之中。

3、放入后,还不能使用,还需要对这个libeay32.dll文件进行注册,如何注册呢?先打开“开始”菜单中的“运行”程序。

如图所示:
4、在运行对话框中输入regsvr32 libeay32.dll命令,回车,当提示成功注册后,即表示成功。

注意:regsvr32后面必须留有一空格。

如图所示:
解决方法二
1、如果自已没有网络,或在网上难以搜到适合的,可以从朋友或邻居电脑中,用U盘复制一个,复制与粘贴路径都与上面提到的文件夹相同。

注意:对方的电脑系统要相同,否则不能使用。

如图所示:
2、放到文件夹后,仍然要象上面一样注册一下。

注册方法相同,这里就不重复描述了。

如图所示:
以上内容就是有关于win7系统libeay32.dll文件丢失的解决方法,当用户遇到了相同情况,那么就可以按照上述的方法进行操作,希望可以帮助到大家。

regsvr 32 命令详解

regsvr 32 命令详解

Regsvr 32命令是Windows中控件文件(如扩展名为DLL、OCX、CPL的文件)的注册和反注册工具。

命令格式:Regsvr32 [/s] [/n] [/i[:cmdline]] dllname/u 卸载安装的控件,卸载服务器注册;/s 注册成功后不显示操作成功信息框;/i 调用DllInstall函数并把可选参数[cmdline]传给它,当使用/u时用来卸载DLL;/n 不调用DllRegisterServer,该参数必须和/i一起使用。

实例当你运行一个软件,WINDOWS出现出错窗口,提示为*.DLL文件或者*.OCX文件找不到,可是搜索一下,这个文件就在C:\WINDOWS\SYSTEM目录中.为什么呢?这是因为这个文件没有在WINDOWS中注册.也就是说WINDOWS还不认识它.假设你要注册的是abc.dll.选择"开始--运行"然后输入“regsvr32 abc.dll”,如果弹出提示信息“DllRegisterServerin Wupdinfo.dll succeeded”,说明组件注册成功;失败一般会出现“LoadLibrary("svchost.dll")失败-找不到指定的模块”,如果要卸载此组件,在“开始→运行”中键入“Regsvr32 /u Wupdinfo.dll ”即可。

实例1:IE无法打开新窗口regsvr32 actxprxy.dllregsvr32 shdocvw.dll重启后如果还不能解决regsvr32 mshtml.dllregsvr32 urlmon.dllregsvr32 msjava.dllregsvr32 browseui.dllregsvr32 oleaut32.dllregsvr32 shell32.dll实例2:IE无法保存HTML格式文件regsvr32 inetcomm.dll实例3:MSN无法登陆regsvr32 softpub.dll实例4:windows默认的文件关联混乱regsvr32 /i shdocvw.dllregsvr32 /i shell.dllregsvr32 /i shdoc401.dll实例5:Window server 2003中无法播放MP3 regsvr32 i3codeca.acmregsvr32 i3codecx.ax实例6:Windows添加/删除程序无法启动regsvr32 mshtml.dllregsvr32 /i shdocvw.dllregsvr32 /i shell.dll实例7:Windows搜索功能故障regsvr32 urlmon.dll实例8:禁止系统对媒体文件进行预览regsvr32 /u shmedia.dll实例9:Windows无法在线升级的问题regsvr32 wupdinfo.dll实例10:防范网络脚本病毒(网络脚本病毒嵌在网页中,上网时在不知不觉中机器就会感染上这种病毒。

64位程序调用32位DLL

64位程序调用32位DLL

64位程序调⽤32位DLL近期再把原来写的股票分析程序转换成64位版本号,程序中调⽤了银江的通视数据接⼝dll,由于银江提供的dll是32位的,但windows以下64位程序并不能直接调⽤32位的dll,所以仅仅能百度了.⽹上有说⽤进程外com的⽅式能够,之前从没接触过com,硬着头⽪搞了半天,发现了问题,进程外com对于dll提供函数返回值不涉及指针的话没有不论什么问题,可是假设dll函数返回值是⼀个指针,问题就来了,因为这个指针和我⾃⼰的数据接收程序不在同⼀个进程地址空间,所以根本没有办法通过指针得到正确的接收数据.所以仅仅能放弃这种⽅法,转向怎样在进程间传递数据.我⾃⼰程序是⽤QT编写,mingw编译的,⽹上关于进程间通信(IPC)资料⼀⼤把,看了⼀下基本上QT在windows以下假设想在进程间传递⼤数据,仅仅能⽤LocalSocket或者共享内存的⽅式.两种⽅式的基本思路⼏乎相同,我⾃⼰的接收程序是64位的,另外在写⼀个32位的server程序,负责调⽤银江的数据接⼝dll,server 程序接收到数据以后,以上⾯两种⽅式传递给我64位的接收程序就能够了.⾸先以LocalSocket的⽅式来设计接⼝的,由于共享内存⽅式会设计⽐較⿇烦的进程间同步问题,localsocket本⾝就有⼀条同步信号机制可供使⽤,详细涉及使⽤QT的QLocalSocket,QLocalServer类,⽹上资料⾮常多,不赘述.既然是⾸先提这样的⽅式,肯定是由于终于没选他,理由是,localsocket会把我传的整块数据随即切割,须要我在接收端推断并⼜⼀次合成原始完整块数据.这就要求接收端多余的推断操作,和内存创建销毁操作,终于还是放弃了.当然我并没有太深⼊的去学习localsocket这样的⽅式有没有办法不⾃⼰主动切割发送的完整⼤块数据,假设有的话,这应该是⼀种理想的⽅式.以下就要讲讲我终于採⽤的共享内存⽅式了,主要涉及QT的QSharedPointer类,开3个共享内存;第1个⽤来存储接收到的数据块.第2个⽤来放接收端(64位)的winid,主要是提供给发送32位的dll调⽤端读取,在接收到数据后通知64位的接收端有新的数据须要从共享内存中读取;第3个共享内存区是同步信号区,存了⼀个整型变量,1代表等待64位client读取数据,0代表没有须要client读取的数据.程序的初始状态这个值为0,32位server端接收到新数据后,会先进⼊⼀个轮询过程,在这个值为1时⼀直等待,仅仅有在这个值为0的时候才会打开数据共享区,并将数据放⼊共享区,之后再将这个值置为0.并发送给64位client通知消息(⽤windows的API,函数PostMessageW,⾥⾯⽬标窗体句柄就是第2个共享区中的数据);之后client收到消息以后,会先去读取共享内存中的数据,将起copy到本地进程中,然后置这⾥的信号量置为0.共享内存⽅式基本就如上所述了,当然中间还是会有点⼩问题,由于接收到银江数据头是以下这种结构:typedef struct tagRCV_DATA{int m_wDataType;//⽂件类型int m_nPacketNum;//记录数,參见注⼀RCV_FILE_HEADEx m_File;//⽂件接⼝BOOL m_bDISK;//⽂件是否已存盘的⽂件union{RCV_REPORT_STRUCTEx*m_pReport;RCV_HISTORY_STRUCTEx*m_pDay;RCV_MINUTE_STRUCTEx*m_pMinute;RCV_POWER_STRUCTEx *m_pPower;void*m_pData;//參见注⼆};}RCV_DATA,*PRCV_DATA;能够看出最后⼀个是个指针,这个指针指实际上在32位server端指向的是这个数据头以下的紧接着的内存地址,可是这个地址是server进程中的绝对地址,到了64位client,假设仍然依照这个值,就不可能得到正确的数据,所以client不应该⽤这个值来对兴许的数据訪问,⽽是在copy下来已经在本进程内存中的数据包的⾸地址上加上RCV_DATA这个数据包头的⼤⼩(这⾥是288字节),这样才⼲得到正确的兴许数据地址.。

(精选文档)Windows与Linux下MantisBT的安装与配置相关手册

(精选文档)Windows与Linux下MantisBT的安装与配置相关手册

大名鼎鼎的Mantis是一个Bug跟踪系统,使用PHP编写,简单,易用,功能丰富,一直享有盛誉,还有很重要的一点,它是免费的,中小型企业使用它来跟踪缺陷和问题是再合适不过了。

今天安装并配置了一下,在这里记录下来:1.安装:安装Mantis(现在叫MantisBT)之前,应先准备好Apache,MySQL和PHP的安装,这些在我以前的日志里已经有说明,在这里就不重复了,参见《WAMP(Windows Apache MySQL PHP)+phpMyAdmin安装配置》。

到Mantis官网上下载最新的稳定版本:/download.php选择Stable release版本,如mantisbt-1.1.6.zip。

解压到Apache的资源目录下,在浏览器中输入mantis访问地址,如http://localhost/mantis,将进入数据库安装界面,设置相关数据库信息,填写要创建的数据库名字(默认为bugtracer,可修改为其他)、数据库使用用户和密码(我使用了root用户,当然也可以先创建其他用户然后在这里使用),点击安装数据库。

安装完成后,再次打开http://localhost/mantis,用administrator root进行登录,验证安装。

2.配置:2.1图形报表模块支持2.1.1编辑php的配置文件php.ini,找到;extension=php_gd2.dll,将前面的“;”去掉,市php能够提供图形支持。

2.1.2到http://www.aditus.nu/jpgraph/jpdownload.php下载最新的JPGRAPH包,根据自己安装的PHP 版本来选择,如jpgraph-2.3.4.tar.gz,解压到mantis根目录下,重命名为jpgraph。

打开mantis安装目录下新生成的config_inc.php文件,添加:$g_use_jpgraph = ON;$g_jpgraph_path = '.' . DIRECTORY_SEPARATOR . 'jpgraph' .DIRECTORY_SEPARATOR.'src'.DIRECTORY_SEPARATOR;2.1.3如果此时打开图标查看,可能会发现图表标题是乱码,这是字体设置问题。

RegSvr32加载失败,找不到指定的模块

RegSvr32加载失败,找不到指定的模块

RegSvr32加载失败,找不到指定的模块应⽤ocx注册时, 出现下图错误:解决⽅案(检测缺少库): 0. 使⽤管理员运⾏cmd,注册ocx 1. mfc100.dll、mfc100u.dll、msvcp100.dll、msvcr100.dll之类的库(可能是ocx⼯程属性为Use MFC in a Shared DLL) 2. 可能是缺少应⽤程序需要的库,可以写个简单的win32控制台程序。

(ocx依赖的库全部#pragma comment进来,调⽤⼀个库函数),运⾏demo,会提⽰缺少库的名称2. 或者使⽤win32程序直接调⽤ocx,查看错误提⽰ 3. 使⽤depends⼯具查看缺少库 4. ⼯程间使⽤不同的MD(MDD)、MT(MTD), 也可能导致程序⽆法运⾏附ocx注册为安全组件代码1// Hello.cpp : Implementation of CHelloApp and DLL registration.23 #include "stdafx.h"4 #include <objsafe.h>56 #ifdef _DEBUG7#define new DEBUG_NEW8#endif91011 CHelloApp theApp;1213const GUID CDECL _tlid = { 0x872CF3E6, 0x5EBF, 0x4436, { 0xA5, 0x25, 0x58, 0xCE, 0xF, 0xAA, 0x38, 0x5B } };14//注意与idl middleocx uuid(51DF1D91-DA4E-47DA-A5BE-84A96ADD2425)相同, 之前注册了ocx,需要卸载后重新注册15// 注册ocx: regsvr32 middleocx.ocx16// 卸载ocx: regsvr32 /u middleocx.ocx17const CATID CLSID_SafeItem = { 0x51DF1D91, 0xDA4E, 0x47DA, { 0xA5, 0xBE, 0x84, 0xA9, 0x6A, 0xDD, 0x24, 0x25 } };18const WORD _wVerMajor = 1;19const WORD _wVerMinor = 0;20212223// CHelloApp::InitInstance - DLL initialization2425 BOOL CHelloApp::InitInstance()26 {27 BOOL bInit = COleControlModule::InitInstance();2829if (bInit)30 {31// TODO: Add your own module initialization code here.32 }33return bInit;34 }35363738// CHelloApp::ExitInstance - DLL termination39int CHelloApp::ExitInstance()40 {41// TODO: Add your own module termination code here.42return COleControlModule::ExitInstance();43 }44454647// 创建组件种类48 HRESULT CreateComponentCategory(CATID catid, WCHAR* catDescription)49 {50 ICatRegister* pcr = NULL ;51 HRESULT hr = S_OK ;5253 hr = CoCreateInstance(CLSID_StdComponentCategoriesMgr,54 NULL, CLSCTX_INPROC_SERVER, IID_ICatRegister, (void**)&pcr); 55if (FAILED(hr))56return hr;5758// Make sure the HKCR\Component Categories\{..catid...}59// key is registered.60 CATEGORYINFO catinfo;61 catinfo.catid = catid;62 catinfo.lcid = 0x0409 ; // english6364// Make sure the provided description is not too long.65// Only copy the first 127 characters if it is.66int len = wcslen(catDescription);67if (len>127)68 len = 127;69 wcsncpy_s(catinfo.szDescription, catDescription, len);70// Make sure the description is null terminated.71 catinfo.szDescription[len] = '\0';7273 hr = pcr->RegisterCategories(1, &catinfo);74 pcr->Release();7576return hr;77 }7879// 注册组件种类80 HRESULT RegisterCLSIDInCategory(REFCLSID clsid, CATID catid)81 {82// Register your component categories information.83 ICatRegister* pcr = NULL ;84 HRESULT hr = S_OK ;85 hr = CoCreateInstance(CLSID_StdComponentCategoriesMgr,86 NULL, CLSCTX_INPROC_SERVER, IID_ICatRegister, (void**)&pcr); 87if (SUCCEEDED(hr))88 {89// Register this category as being "implemented" by the class.90 CATID rgcatid[1] ;91 rgcatid[0] = catid;92 hr = pcr->RegisterClassImplCategories(clsid, 1, rgcatid);93 }94if (pcr != NULL)95 pcr->Release();96return hr;97 }9899// 卸载组件种类100 HRESULT UnRegisterCLSIDInCategory(REFCLSID clsid, CATID catid) 101 {102 ICatRegister* pcr = NULL ;103 HRESULT hr = S_OK ;104105 hr = CoCreateInstance(CLSID_StdComponentCategoriesMgr,106 NULL, CLSCTX_INPROC_SERVER, IID_ICatRegister, (void**)&pcr); 107if (SUCCEEDED(hr))108 {109// Unregister this category as being "implemented" by the class. 110 CATID rgcatid[1] ;111 rgcatid[0] = catid;112 hr = pcr->UnRegisterClassImplCategories(clsid, 1, rgcatid);113 }114115if (pcr != NULL)116 pcr->Release();117118return hr;119 }120121// DllRegisterServer - Adds entries to the system registry122123 STDAPI DllRegisterServer(void)124 {125 AFX_MANAGE_STATE(_afxModuleAddrThis);126127if (!AfxOleRegisterTypeLib(AfxGetInstanceHandle(), _tlid))128return ResultFromScode(SELFREG_E_TYPELIB);129130if (!COleObjectFactoryEx::UpdateRegistryAll(TRUE))131return ResultFromScode(SELFREG_E_CLASS);132133// 标记控件初始化安全.134// 创建初始化安全组件种类135 HRESULT hr = CreateComponentCategory(CATID_SafeForInitializing, 136 L"Controls safely initializable from persistent data!");137if (FAILED(hr))138return hr;139// 注册初始化安全140 hr = RegisterCLSIDInCategory(CLSID_SafeItem, CATID_SafeForInitializing);141if (FAILED(hr))142return hr;143144// 标记控件脚本安全145// 创建脚本安全组件种类146 hr = CreateComponentCategory(CATID_SafeForScripting, L"Controls safely scriptable!"); 147if (FAILED(hr))148return hr;149// 注册脚本安全组件种类150 hr = RegisterCLSIDInCategory(CLSID_SafeItem, CATID_SafeForScripting);151if (FAILED(hr))152return hr;153154return NOERROR;155 }156157158159// DllUnregisterServer - Removes entries from the system registry160161 STDAPI DllUnregisterServer(void)162 {163 AFX_MANAGE_STATE(_afxModuleAddrThis);164165if (!AfxOleUnregisterTypeLib(_tlid, _wVerMajor, _wVerMinor))166return ResultFromScode(SELFREG_E_TYPELIB);167168if (!COleObjectFactoryEx::UpdateRegistryAll(FALSE))169return ResultFromScode(SELFREG_E_CLASS);170171return NOERROR;172 }。

the procedure entry point setdefaultdlldirectories

the procedure entry point setdefaultdlldirectories

SetDefaultDllDirectories 是一个Windows API函数,用于设置应用程序的默认DLL搜索路径。

这个函数在加载DLL时特别有用,因为它允许开发者指定哪些目录应该被搜索以找到所需的DLL文件。

当你遇到“the procedure entry point SetDefaultDllDirectories could not be located in the dynamic link library KERNEL32.dll”这样的错误时,这通常意味着以下可能:操作系统版本不兼容:SetDefaultDllDirectories 函数可能在你当前运行的Windows版本上不可用。

这个函数是在Windows 8和Windows Server 2012中引入的,所以如果你在这些版本之前的系统上运行程序,你可能会遇到这个错误。

损坏或篡改的KERNEL32.dll:KERNEL32.dll是Windows操作系统的一个核心组件,如果这个文件被损坏或被恶意软件篡改,也可能会导致这个错误。

应用程序与操作系统不兼容:如果你正在运行的应用程序是为更新版本的Windows编写的,但你的操作系统版本较旧,那么可能会因为缺少某些API函数而遇到这个问题。

为了解决这个问题,你可以尝试以下方法:更新Windows:确保你的操作系统是最新的。

如果你的系统版本低于Windows 8,考虑升级到更新的版本。

运行应用程序的兼容模式:尝试以兼容模式运行应用程序,看看是否可以解决问题。

系统文件检查工具:运行系统文件检查工具(sfc /scannow)来修复任何可能的系统文件损坏。

重新安装应用程序:有时重新安装应用程序可以解决与DLL相关的问题。

安全扫描:运行安全扫描以确保你的系统没有被恶意软件感染。

联系应用程序开发者:如果问题仍然存在,最好联系应用程序的开发者或供应商,询问他们是否有针对你当前操作系统版本的解决方案或补丁。

OpenSSL简介及在Windows系统上的编译步骤

OpenSSL简介及在Windows系统上的编译步骤

OpenSSL简介及在Windows系统上的编译步骤OpenSSL在Windows7 32bit + vs2010中win32的编译步骤:1. 从下载OpenSSL源代码 openssl-1.0.1g版本;2. 从下载ActivePerl5.16.3 x86(ActivePerl为perl的一个脚本解释器);3. 将ActivePerl安装到D:\ProgramFiles\Perl64目录下,打开命令提示符,将其定位到D:\ProgramFiles\Perl64\eg 目录下,执行perl example.pl ,若提示Hello fromActivePerl! 则说明Perl安装成功,可以开始使用Perl的相关命令来进行OpenSSL的安装了;4. 将openssl-1.0.1g解压缩到E:\OpenSSL\openssl-1.0.1g 目录下;5. 从下载nasm 2.07,将其安装到D:\ProgramFiles\NASM 中,并将D:\ProgramFiles\NASM添加到系统环境变量Path中;6. 将命令提示符定位到E:\OpenSSL\openssl-1.0.1g;7. 输入perl Configure VC-WIN32 --perfix=E:\OpenSSL\openssl (将其安装到E:\OpenSSL\openssl);8. 输入ms\do_nasm ;9. 将命令提示符定位到C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin ,然后输入vcvars32.bat,会显示Settingenvironment for using Microsoft Visual Studio 2010 x86 tools. 如果没有这一步,会提示nmake不是内部或外部命令;10. 再次将命令提示符定位到E:\OpenSSL\openssl-1.0.1g;11. 输入nmake –f ms\ntdll.mak ;执行完后会在openssl-1.0.1g目录下生成一个out32dll文件夹,里面包含了一些静态库、动态库和.exe文件;12. 输入nmake -f ms\ntdll.mak test ;若最终显示passed all tests说明生成的库正确;13. 输入nmake -f ms\ntdll.mak install ;则会在E:\OpenSSL\openssl目录下生成bin、include、lib、ssl四个文件夹;14. 以上编译的是release库,若编译debug库,则将以上第7步中的VC-WIN32改成debug-VC-WIN32即可;15. 若编译静态库则用ms\nt.mak替换掉上面用到的ms\ntdll.mak即可;16. 若生成不带汇编支持的库,则需将以上第7、8步用perl Configure VC-WIN32 no-asm --prefix=E:\OpenSSL\openssl 和 ms\do_ms替换即可;17. 在E:\OpenSSL\openssl-1.0.1g\tmp32dll文件夹下包含相应的汇编文件。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1) 在64位系统下,vs2013程序运行的过程中,会调用C:\Windows\SysWOW64下的两个动态库,但是会产生冲突,经常会
出现“无法定位序数4445于动态链接库LIBEAY32.dll”“无法定位序数322于动态链接库LIBEAY32.dll”等等情况。
解决方法:运行的是x64的程序,则需要在此路径下放入64位的动态库,运行的是win32的程序,则需要在此路径下放入32
位的动态库。
2)运行一般的应用程序时,也出现了“丢失动态链接库**eay32.dll”或者“无法定位序数**于动态链接库LIBEAY32.dll”
的情况
解决方法:将应用程序目录下的动态链接库拷贝至C:\windows\system32或者C:\Windows\SysWOW64目录下
1.系统文件中openssl提供了ssleay.dll和libeay32.dll两个动态库,以下所提放在C:\windows\system32中,程序执行一般会调用此路径下的动态库
对于64位系统,动态库会放在C:\windows\system32和C:\Windows\SysWOW64中,程序执行一般会调用后者路径下的动态库
相关文档
最新文档