草庐IT

STM32Programmer

全部标签

windows - 当 dll 在 system32 中时,程序在我的系统上找不到 dll

我编写的应用程序需要cbw32.dll。在我的电脑上,dll在c:\windows\system32,路径上有c:\windows\system32。奇怪的是:此应用程序有一个安装程序,我用它在我自己的计算机上安装该应用程序。安装程序不分发dll。我们的客户和他们的客户安装和运行这个软件都很好。我在一位同事的计算机上安装了该软件,并且运行良好。他们唯一的dll实例在他们的c:\windows\system32中。我们的计算机都运行64位Windows7。但它在我的电脑上不起作用。为什么在所有计算机中分布相同的软件无法在我的计算机上找到dll,而dll恰好位于它应该在的位置?

c++ - Win32 Edit 打印不正确的字符

我正在使用Win32编辑器来显示调试信息,并且我已将编辑器与我的基本GUI的其余部分一起放在一个类中。但是,当我向编辑输出任何内容时,它会显示“????????????????????????????”。我认为错误出在我的MyGUI::append(LPCSTR)方法中,尽管它在过去一直运行良好。任何意见/想法/解决方案将不胜感激。如果我需要发布与我的GUI类有关的所有代码,请告诉我。我的类位于命名空间Interface中,还有独立的WindowProcedure函数,我在使用WNDCLASSEX注册应用程序时调用它>对象。win32编辑不是在WindowProcedure的WM_CR

c++ - 将 32 位值转换为 HANDLE

我正在处理一个提供32位自定义句柄的组件,我想使用标准的WindowsHANDLE类型来包装它。在遗留组件中,我看到了以下两种转换方法的使用://valueis32-bitsautovalue=GetCustomHandle();HANDLEhA=HANDLE(value);HANDLEhB=(void*)(SIZE_T)value;hA和hB总是等价的吗?如果不是,在什么情况下不是?在这种情况下,我认为它们总是等价的,因为:函数式转换和类C转换之间没有区别。HANDLE等同于void*。void*和SIZE_T的大小在32位系统上为32位,在64位系统上为64位。谢谢。

windows - 带有 User32.dll 的 LoadLibraryA 在 ntdll.dll(x64 程序集)中崩溃

所以我有一个汇编代码块,它初始化一个程序,解析kernel32,找到GetProcAddress,然后找到LoadLibarayA来加载User32.dll。它工作到LoadLibraryA为止。它在函数调用中崩溃,但我可以看到调试器中加载了User32.dll。如果我尝试在不同的模块(例如Kernel32.dll)上使用LoadLibraryA,它会返回并成功。如果你想看的话,这里有完整的源代码https://gist.github.com/mojobojo/921a5af897e86bb940a2Exceptionthrownat0x00007FFAFAE8E91C(ntdll.d

windows - 如何更改 MASM32 中的链接器设置

我在Windows7(64位)中使用MASM32编辑器。默认情况下,我的链接器是“增量链接器版本5.12.8078”,它不链接我的程序。我想使用这个链接器“Microsoft(R)分段可执行链接器版本5.60.3391994年12月5日”。请告诉我如何更改我的MASM32设置并使其成为默认链接器 最佳答案 在编辑器中加载\masm32\menus.ini(您可以使用MASM32编辑器)。向下滚动到&RunProgram,"{b}.exe"[&Tools]插入两行:&RunProgram,"{b}.exe"-Build16-bit,c

c++ - mingw32-g++.exe : error: CreateProcess: No such file or directory again

这个问题在这里已经有了答案:YetAnotherMinGW"gcc:error:CreateProcess:Nosuchfileordirectory"(9个回答)关闭5年前。我找遍了,找不到解决办法。我用编译器安装了code::blocks版本。(Windows7的)每次尝试编译时,我都会收到NoSuchfileordirectory错误。我想可能是空格导致了问题,所以我单独下载并安装了ming到C:\GCC\MinGW-w64我进入了编译器设置/工具链可执行文件并定向了每条路径,因此它不会尝试从安装了code::blocks的程序文件中读取。发生同样的错误。我也试过直接进入bin文

windows - 如何正确循环/获取文本/选择 SysTreeView32 窗口项

我花了几个小时浏览Microsoft的开发中心;但是,我似乎无法弄清楚如何做以下两件事:在“导航器”子窗口的“专家顾问”部分下循环查看每个程序的名称(例如下面屏幕截图中的“MACD示例”)选择并双击该程序(例如“MACD样本”)。Winspector(Left)|Application(Right)我的主要问题似乎是我不知道如何正确使用HTREEITEM来访问信息。我注意到有一个函数ListView_GetItemText,但我找不到TreeView_GetItemText或等效函数。如有任何帮助,我们将不胜感激。下面是我的程序的主要功能:int_tmain(intargc,_TCHA

windows - 检查菜单项是否在 Delphi 中使用 API Win32 启用

我在这段代码中遇到的问题是,当菜单项被禁用时,然后在控制应用程序中传递代码“PostMessage”导致崩溃,因为我需要检查菜单项是否已启用,然后使用PostMessage。HandleMenu:=GetMenu(ParentAppHandle);HandleMenu:=GetSubMenu(HandleMenu,6{menuitemno});item:=GetMenuItemID(HandleMenu,12{submenuitemno});PostMessage(ParentAppHandle,WM_COMMAND,MakeWParam(item,0),0);

c++ - 您可以在不重新打开重新打开 win32 窗口的情况下执行需要提升的任务吗?

是否可以在不重新打开整个窗口的情况下执行需要提升的任务(在我的示例中,我必须编辑注册表)?所以我有一个CPL项目,它的页面可以选择编辑我的应用程序设置(写入注册表)。是否只有当用户点击apply或ok时才可以执行此操作?但无需重新打开整个cpl窗口。 最佳答案 Alf的评论已经说明了很多:不。Windows与进程绑定(bind),进程创建后无法提升。当然,您可以有第二个子进程,它实际上不显示任何东西,只是执行请求的任务。或者,您可以定义自己的COM对象来执行请求的任务,然后使用COMElevationMoniker在需要时以提升的状

excel - 如何通过Powershell查找安装的是64位还是32位的excel?

我们已经编写了powershell函数来查找是否安装了64位或32位msi。我们正在检查Outlook注册表项,因为它具有位数信息。但是当用户只安装没有outlook的excel时,这个注册表项是不可靠的(在64位操作系统中它可用,但在32位操作系统中它不可用)。以下是我们编写的用于查找的函数。现在,由于注册表项不可用,因此无法正常工作。有没有其他方法可以找到excel的位数?FunctionGet-OfficeVersionInstalled{$NoExcelInstalled='0'$excelApplicationRegKey="HKLM:\SOFTWARE\Classes\Ex