在我的一个项目中,我使用了一个动态加载包装器DLL(导出C风格函数)的Delphi应用程序,后者又静态链接到一堆第3方DLL。它在我的测试机器上工作正常,但在我的客户计算机上它无法初始化并出现错误消息,如“在TMYlibrary.dll中找不到入口点_somefunction@4AKKZ”。在对sysinternal的进程监视器进行一些调查后,我意识到Windows会首先查找windows/sytem32中的DLL,因此如果system32中存在一个名为myDLL的DLL,windows会选择它一个并尝试在其中找到我的函数入口点-这会失败。您知道可以更改Windows的DLL的搜索行为
更新:我找到了使用jSerialComm库的解决方案。(见底部代码)我有一个程序,我们已经在Windows7机器上运行了很长一段时间,但现在开始引入装有Windows10的机器,程序崩溃了。所以我需要找到解决方案。错误是EXCEPTION_ACCESS_VIOLATION错误。(见下文)下面的第一段代码是我自己的代码,它使用了rxtxSerial.dll库。它会打开并设置端口参数,但一旦从端口接收到数据就会崩溃。我也尝试过jssc.jar库,但出现相同的EXCEPTION_ACCESS_VIOLATION错误。第二个代码块直接来自JSSC示例WIKI。它在尝试打开端口时立即崩溃。我正在
更新:这基本上都是假的。事实证明,运行应用程序的计算机上的Depends.exe版本是32位版本。修复该问题后,两台机器都将系统DLL显示为64位,因此这不是问题的根源。不确定为什么depends在32位exe中以这种方式显示它们。进一步更新:最终问题是一个64位DLL。使用正确版本的DependencyWalker后更容易找到它。选择32位还是64位版本并不是基于您运行的平台。来自FAQ:DependencyWalkerwillworkwithany32-bitor64-bitWindowsmodule.Thereare32-bitand64-bitversionsDependenc
我有一个ClickOnce应用程序,它在安装了.Net4.5.1的Windows8Embeddedx64中运行良好。当我升级到.Netframework4.5.2时出现系统错误:“程序无法启动,因为缺少MSVCR120_CLR0400.dll”如果我在装有.Net4.5.2的Windows8.1x64机器上运行它,它工作正常。我尝试安装:-Redistributable2010x86/x64-Redistributable2012x86/x64-Redistributable2013x86/x64这不起作用,之后我运行了一个cmd命令“sfc/SCANNOW”,但没有帮助。有人能帮忙吗
前提:我有一个旧的32位COMshell扩展(用C++编写)。在与更新的64位系统多年不兼容之后,我们现在正在更新它以在64位Windows环境中工作。诀窍:32位COMDLL包含对第三方库的依赖,没有可用的64位版本。因此,我们不能简单地“在64位中重新编译”。鉴于此限制,我们决定最简单的方法是创建一个“瘦”64位DLL;本质上是一个空DLL,仅定义所需的接口(interface),并将所有调用重定向到底层32位COMDLL。我相信通过使用COM代理,64位COMDLL和32位COMDLL之间的通信是可能的。不幸的是,这似乎是一个非常具体/小众的话题,而且我一直无法找到很多关于如何从
我有一个基于MFC的程序,它在应用更新之前运行良好3059317:MS15-060:VulnerabilityinMicrosoftcommoncontrolscouldallowremotecodeexecution:June9,2015)更新将Comctl32.dll替换为新版本。应用此更新后,打开对话框只会挂起程序。并非所有对话框似乎都受到影响,但打印预览一直挂起,但没有使程序崩溃。它只是变得没有反应。我不知道如何尝试调试此问题以找到解决方法。程序挂起时创建内存转储会提供以下堆栈跟踪:comctl32.dll!751f8505()Xxx.exe!CWnd::WindowProc(
当我尝试运行MVS2012时,我总是遇到错误-在库DLLMSVCR110.dll中找不到过程_crtCreateSymbolicLinkW的入口点。我已经从我的另一台电脑上复制了这个dll文件,那里一切正常,但它没有帮助0_o。操作系统-Windows7。 最佳答案 此时最好的选择是尝试修复VisualStudio安装控制面板添加/删除程序选择VisualStudio并选择“修复” 关于windows-由于MSVCR110.dll,MSVisualStudio2012Ultimate无法
我想用线程(而不是多进程)并行化一个使用非线程安全的DLL(Compute.dll)的nativec++代码。实际上,我有一种可以并行化的循环:for(inti=0;i我确定了一种并行化native代码的方法:克隆并重命名Compute1.dll、Compute2.dll、...、ComputeN.dll中的Compute.dll,并按线程使用一个dll。所以对于链接,以同样的方式,我必须在Compute1.lib、Compute2.lib、...、ComputeN.lib中复制Compute.lib使用此解决方案,我必须在我的应用程序中复制代码以定义多个ComputeDLL类:Com
我在我的windows7box中安装了virtualbox4.3.28,尝试打开导入的VM并得到以下错误。我看到大约1/2年前的一些帖子说这是某些Windows安全修复程序的问题,但我没有安装该修复程序,我已经安装了假定的解决方法,但无济于事。KB3004394不在我的系统上对我没有帮助的旧修复(我没有在我的机器上看到有问题的KB文件)Vagrantlaravelbox,guestmachineenteredaninvalidstatehttps://www.virtualbox.org/ticket/13677我看到的错误:1618.161c:supR3HardenedScreenI
我想从nim代码创建一个dll。但是除了“NimMainInner”之外,我没有注册其他一些导出。即使我尝试这个简单的例子它也不起作用:procHellow():cint{.exportc.}=echo("hello")return1我用nimc--app:liblibh4x.nim编译了它和nimc-d:release--app:lib--no_mainlibh4x.nim我使用Nim编译器版本0.11.2(2015-05-04)[Windows:i386]我使用dllexp.exe检查dll。我也尝试用pythonctypes加载dll,但我的导出都没有显示或可调用。不过,我可以使