Articles of DLL

如何使用导出C ++类的DLL使用延迟加载

我有一个DLL one.dll使用类two.dll通过class __declspec(dllexport)从two.dll导出。 我想one.dll使用/delayload for two.dll ,但我得到一个链接错误: LINK : fatal error LNK1194: cannot delay-load 'two.dll' due to import of data symbol '"__declspec(dllimport) const TwoClass::`vftable'" (__imp_??_7TwoClass@@6B@)'; link without /DELAYLOAD:two.dll 这是在发布版本; 在一个debugging版本的工作。 (我不知道在vtable导出方面版本和debugging之间有什么区别,我也不能find任何编译器开关或编译指令来控制它。) 我如何使用/delayload在一个发布版本中导出这样的类的DLL?

如何使用序号调用导出的函数

如果一个dll导出一些函数,并且函数只有序数,我怎么能调用函数呢? 请给我一个简短的例子。

使用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'时,我得到

.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,以解决这个问题。

使用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