问题标签 [loadlibrary]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
matlab - matlab的calllib中“不支持函数返回类型”的错误是什么意思?
我正在使用 calllib 从 matlab 访问外部 DLL。DLL 中有一个函数,其签名如下所示:
当我尝试在 matlab 中调用它时,
我得到错误:
令人惊讶的是,谷歌没有显示该错误消息,并且 calllib 的文档中没有任何内容:http: //www.mathworks.com/help/techdoc/ref/calllib.html
我的猜测是,由于该函数正在返回一个结构,因此 matlab 正在呕吐。但是文档中没有任何建议。尽管 matlab 没有提供任何示例,但都包含一个结构作为输出变量。
c++ - 在MFC APP中,如果我从“InitInstance”调用“LoadLibraryA”,它会一次又一次地调用“InitInstance”
我已经使用 VS2008 向导创建了一个 MFCApp。在我的应用程序的“InitInstance()”中,我正在调用“LoadLibraryA()”方法,因为我需要加载一些 dll 文件。但是一旦我调用“LoadLibraryA()”,它就会再次调用我的应用程序的“InitInstance()”,因此它变成了无限递归的东西。有什么我做错了吗?
调用堆栈:
“Def.dll”是任何其他 dll,与 MyApp 完全无关。在这种情况下,我正在尝试加载另一个 dll “CORE.dll”
我所能弄清楚的是,我在 InitInstance 例程结束之前调用了 LoadLibrary。是否有在 InitInstance 之后调用的任何其他(可覆盖)方法???如果是这样,我可以尝试将 LoadLibrary 调用移至该方法...
delphi - Delphi 2010:从 Delphi 执行二进制文件时不加载 DLL
我正在使用我的 Delphi 项目中的 LoadLibrary 加载一个 DLL,如下所示:
DLL 所在的目录包含在 Windows PATH 环境变量中。当我在 Delphi 中执行这个项目时,DLL 不会加载。但是,当直接从 Windows 执行相同的代码时,DLL 会完美加载。
我在这里想念什么?我试图通过将目录添加到工具->选项、环境选项->Delphi选项->库-Win32->库路径来明确告诉Delphi查看DLL的目录。(感觉就像一个完全的PEBKAC。我预计在不久的将来会为自己感到尴尬:) ...)
提前致谢!
dllimport - WOW64 重定向和 LoadLibrary
我正在尝试构建一个可以在 64 位 Windows 上正确运行的 32 位程序;也就是说,如果它需要为用户打开一个文本文件,该文件不需要被重定向C:\Program Files
到C:\Program Files (x86)
. 但是,如果我只是调用Wow64DisableWow64FsRedirection
,那么我的程序根本无法加载,因为在LoadLibrary
加载部分 GUI 时会调用一些系统库,这会尝试将 64 位版本的系统 DLL 加载到我的程序中。
我该如何解决这个问题?
编辑:
请参阅下面的屏幕截图中的问题:
编辑2:
这是另一个可以解决问题的问题:有没有办法为您的进程中的任意线程或整个进程禁用 WOW64 重定向?
c++ - C++:我们的安装程序拒绝加载我们应用程序的资源 DLL(未找到模块)[仅限 XP]
基本上,当我们的软件在 下运行时Windows 7
,它可以工作:调用LoadLibrary()
成功,生活美好。
但是,当在一个机器上运行相同的软件XP
(最新补丁)时,调用LoadLibrary
失败,返回NULL
,并带有指定module not found
.
我尝试强制它使用该UNICODE
版本LoadLibraryW
而不是LoadLibraryA
我们的应用程序的版本。
我已尝试确保安装文件夹是通过本地驱动器号映射的。
而且我已经验证了路径名实际上可以从执行机器访问(即产生的错误表明它试图加载的路径,我使用该字符串来实际查找文件)。
奇怪的是,这段代码在VS 2008 SP2
.
当客户端机器是Windows 7
.
仅当它被编译+链接VS 2010
并且在客户端上运行时才会失败XP
。
我完全不知道世界上可能出了什么问题。
为炖菜添加怪异:
如果我XP
VM
在我的开发箱上启动并在 debug build inVS2010
下运行此代码XP
,它可以正常工作!
事实上,在 my 下XP
VM
,标准(发布)构建也可以正常运行!!!
只是当从一个真正的盒子运行时它才会失败(到目前为止, XP
我已经尝试了几台机器,都已完全修补)。XP
有什么想法吗?!
我开始没有可靠的想法了。:(
winapi - 如何在 x64 环境中使用 32 位 DLL?它不会让我强制 x86 编译!
VC++ 2008,CLR Console App,win7 x64下开发。
我正在使用 .net 和 MS Office v.12 PIA 来做一些 Excel 自动化,效果很好。但现在,我开始了代码的下一部分,其中涉及一些简单的电子邮件事务,所以我试图让 MAPI 在我的代码中工作。基本上,它读取适当的注册表项以获取 OLMAPI32.DLL 文件的完整路径,然后尝试从该 dll 中加载库/GetProcAddress。
这是一个片段:
LoadLibrary 设置系统错误 193:“%1 不是有效的 Win32 应用程序”对我来说并不令人震惊。在做了一些研究之后,我想我需要做的就是强制 x86 编译。所以我转到配置管理器,在活动解决方案平台下,我唯一的选择是 Win32、新建和编辑。所以我点击New,在“Type or select the new platform”下输入“x86”,然后点击“Copy settings from”选择“Any CPU”或合适的,但我唯一的选择是Win32,而且!我想可能是因为我已经瞄准了 .net,所以为了测试这个理论,我开始了一个新项目,这次是作为 Win32 控制台应用程序。即使在那种类型的项目下,我唯一的选择是Win32。我听说的 x86、x64、Any CPU 和 Itanium 在我的 VS2008 中不存在!
所以我在这里不知所措。如何强制 VS 将我的 exe 编译为 x86,以便我可以使用 mapi 接口?或者是否有我可以使用的 64 位版本的 OLMAPI32.DLL?如果没有 64 位库,并且当我尝试为 x86 设置环境时,VS 给了我最重要的提示,我该怎么让 MAPI 在我的代码中工作?我简直不敢相信我的 64 位环境会自动取消我使用 MAPI 的资格。
谢谢
dll - LoadLibrary 因找不到模块错误而失败 - 可能存在依赖性问题
我一直在尝试使用 C++ 加载 32 位 dll(来自 32 位应用程序,在 Windows 7 64 位上)。LoadLibrary 返回 NULL,GetLastError 为“找不到指定的模块”返回 126。
我将完整地址传递给 LoadLibrary 函数。我在 Dependency Walker 中打开了 dll,它说 GPSVC.dll 是缺少的依赖项。
从我所做的谷歌搜索来看,看起来 Dependency Walker 经常错误地将这个 GPSVC.dll 显示为缺少的依赖项,并且没有 32 位版本,所以我认为这不是实际问题。
过去我没有对 dll 做太多的修改,所以希望这是一个相对简单的问题,我可以从中学习。
提前感谢您的帮助!
winapi - 获取使用 LoadLibrary("MyDll.dll") 加载的 dll 的路径
我正在使用它的名称加载一个 dll,如下所示:
HANDLE hlib = LoadLibrary("Winfax.dll");
现在我想知道 dll 是从哪个路径加载的。有没有办法获取 dll 句柄的完整路径和文件名?
c# - 未安装 .net 4.0 时 C++ CLR 加载 .net 4.0 dll
我有一个应用程序,用 c++ 编写并用 VS 2010 编译。我需要加载用 C# 编写并从 c++ 代码为 .net 4.0 平台编译的 .net dll 并调用一些函数。我已经通过 C++ CLR 及其调用 .net 函数完成了这项工作,直到系统中没有安装 .net 4.0。
当未安装 .net 4.0 时,任何函数调用都会在我的 c++ 代码中引发 SEH 异常,但库加载成功。每次异常代码都是相同的0xE0434F4D。
问题:
- 是否可以从 C++ 代码中确定加载的 dll 的目标 .net 平台,并确定系统中是否安装了该平台?
- 也许还有其他方法可以防止 SEH 异常并显示人类可读的错误解释?
提前致谢
c++ - LoadLibrary 采用 LPCTSTR
我想使用 LoadLibrary 开发一个插件系统。
我的问题是:我希望我的函数采用 aconst char*
并LoadLibrary
采用LPCTSTR
.
我有一个好主意,(LPCSTR)path
它一直给我一个未找到模块的错误。
当前代码如下。如果我取消注释该widepath = L..
行,它工作正常。我已经阅读了使用 MFC 的解决方案,但我不想使用 MFC。
当前代码: