Articles of DLL

.dll和.exe之间的区别?

我想知道DLL和EXE文件之间的确切区别。

“序数112不能位于dynamic链接库…”

整体错误如下:“序号112不能位于dynamic链接库D:\ GNU-C-compiler \ GNUstep \ bin \ openssl.exe” 我一直在网上寻找解决scheme无济于事。 我最近开始使用OpenSSL进行encryption,但在安装过程中,我安装了多个不同版本的软件进行testing,但是在删除这些其他版本的时候,我只是删除了文件夹,而不是做适当的卸载程序(openssl程序保存了一些DLL进入Windows系统目录,所以这些多个DLL的保存)。 因此,我相信这些额外的dll是问题的根源(也许),但我找不到方法轻松地卸载它们,所以我要求一个合理的解决scheme,以解决这个问题。

使用cmake构build可执行文件和共享库,runtimelinker找不到dll

我正在使用gcc(cygwin),gnu make,windows 7和cmake。 我的cmake testprojekt有以下结构 rootdir |– App | |– app.cpp | +– CMakeLists.txt |– Lib | |– lib.cpp | |– CMakeLists.txt |– MakeFileProject + CMakeLists.txt ROOTDIR /应用/ app.cpp: #include<string> void printThemMessageToScreen(std::string input);//prototype int main(int argc,char **argv){ printThemMessageToScreen("this will be displayed by our lib"); return 0; } ROOTDIR /库/ lib.cpp: #include<iostream> #include<string> void printThemMessageToScreen(std::string input){ […]

为win32控制台应用程序设置库path

当我尝试执行简单的“HelloWorld”win32控制台应用程序时,出现“找不到:重新启动应用程序可能会解决问题”错误。 我知道.dll的位置。 如何从命令提示符执行.exe时指定其位置? PS:将.dll复制到.exe的当前目录似乎解决了这个问题,但是这种方法在这种情况下是不合适的。

Qt Widget应用程序“库未注册”错误

我刚刚开始使用Qt,并创build了一个简单的Qt Widgets应用程序。 当我构build并运行应用程序(即使我创build了一个没有新代码的新项目),我收到以下错误消息: (2128)\ OLEAUT32.dll!74445072 :(调用者:7444FE4F)ReturnHr(1)tid(188)8002801D库未注册。 (2128)\ OLEAUT32.dll!74445072:(调用者:7444FE4F)ReturnHr(2)tid(188)8002801D库未注册。 我的Qt安装和Windows都是最新的。 我一直在寻找一个解决scheme,现在几个小时,我找不到任何东西,甚至远程相关的问题在线…有没有其他地方有类似的问题? 更新: 我只是从我的电脑彻底删除Qt,并做了全新的安装,我仍然得到相同的消息。

获取'程序的问题php_var_unserialized_init找不到'

我正在为Windows设置Solr for Moodle 3.1 。 我的PHP信息看起来像PHP 7.0.21 (CLI)(内置:2017年7月5日13:31:19)(ZTS),我运行Windows 10,64位。 我从https://pecl.php.net/package/solr/2.4.0/windows下载了“7.0线程安全(TS)x86”。 我已经添加了' extension=php_solr.dll '到我的php.ini @path C:\ xampp \ php:php.ini。 当我把php_solr.dll从'7.0线程安全(TS)x64'放到'C:\ xampp \ php \ ext'时,我得到

加载共享库的两个实例

对于testing,我想从应用程序中加载共享库的两个实例。 库中的代码提供了一个API,但它不允许我初始化库的两个(或更多)实例,因为某些函数依赖于静态variables。 我目前正在为这个库编写unit testing,我想有两个实例,因为这会简化我的testing。 图书馆没有链接到程序中。 相反,我直接使用LoadLibrary / GetProcAddress(或Linux上的dlopen / dlsym)加载它。 要区分这两个库,我可以简单地使用不同的名称为我正在加载的函数指针… 以下是问题: 是否有可能加载这样一个库两次? 例如,库的所有加载的实例都应该有自己的数据段,不会相互影响。 如果是这样的话:这是可移植的Windows和Linux?

如何在Windows上为CMake自定义命令设置运行时PATH

我试图将一个* nix,基于CMake的项目移植到Windows。 主库所需的一个头文件是由一个自定义程序生成的,所以CMakeLists.txt文件包含如下内容: add_executable(TableGenerator "TableGenerator.cpp") target_link_libraries(TableGenerator ${LibFoo_LIBRARY}) add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/Table.h" COMMAND TableGenerator "${CMAKE_CURRENT_BINARY_DIR}/Table.h" DEPENDS TableGenerator) 一个重要的细节是TableGenerator使用外部共享库LibFoo 。 例如,在Linux下,一切正常,因为libfoo.so安装在系统库目录之一(如/usr/local/lib ,或者CMake甚至在可执行文件中设置rpath属性,说明在哪里find库。 然而,在Windows上,这些类库通常不会被安装到系统中,而只是被抽取或编译到构build树中或其附近的任意目录中。 为了使TableGenerator运行,需要将foo.dll存在或复制到Dynamic-Link Librarysearch顺序path之一(例如%WINDIR%\System32或TableGenerator的构build输出目录),这是不可取的。 如何设置自定义命令的PATH环境variables,即不在CMake运行期间使用,而是在实际的自定义构build步骤运行时期间使用?

使用CType检测从Windows DLL调用Python脚本

我正在寻求在Windows DLL中添加function来检测调用Python脚本的名称。 我正在通过Python使用ctypes来调用dll,正如我如何从脚本语言调用DLL所描述的那样? 在DLL中,我能够成功地确定调用过程使用WINAPI GetModuleFileName() http://msdn.microsoft.com/en-us/library/windows/desktop/ms683197 (v=vs.85) .aspx 。 但是,由于这是一个Python脚本,因此它正在通过Python可执行文件运行,因此返回的模块文件名是“C:/Python33/Python.exe”。 我需要实际的脚本文件的名字进行呼叫。 这可能吗? 有一点关于为什么:这个DLL用于身份validation的背景。 它使用共享密钥生成一个散列,脚本用于validationHTTP请求。 它embedded在DLL中,以便使用脚本的人不会看到密钥。 我们要确保调用脚本的python文件是经过签名的,所以不是任何人都可以使用这个dll来生成签名,因此获取调用脚本的文件path是第一步。

windows,ImportError:DLL加载失败:指定的模块找不到

import numpy as np import cv2 from matplotlib import pyplot as plt img = cv2.imread('12.jpg',0) orb = cv2.ORB() kp = orb.detect(img,None) kp, des = orb.compute(img, kp) img2 = cv2.drawKeypoints(img,kp,color=(0,255,0), flags=0) plt.imshow(img2),plt.show() 我已经将numpy和cv2模块添加到我的python目录并设置它们的环境variables。 我也安装了msvcp71.dll和msvcr71.dll ,但是这个错误还没有解决。 那么我怎样才能解决这种DLL问题? 版本信息: Python 3.2 numpy的-1.6.1-Win32的superpack-python3.2 OpenCV的-3.0.0