草庐IT

STM32WB55

全部标签

windows - 如何在 win32 控制台上解析 "printf"而不是 "_printf"的符号?

测试平台是windows32bit。所以基本上我想在这些命令中汇编+链接一段汇编代码:nasm-fwin32test.scltest.obj/linkmsvcrt.lib它说:errorLNK2001:unresolvedexternalsymbolprintf在我的代码中,我确实有这样的函数调用:callprintf所以我把这些都改成了call_printf而且有效。我对windows编程不熟悉,请问有什么方法可以解析printf的外部符号吗?因为我在做一些自动转换的任务,转换所有以_开头的函数调用应该很繁琐...谁能给我一些帮助..?谢谢! 最佳答案

windows - windows中将64位地址截断为32位地址时,为什么要保证高33位为0,高32位不为0?

我一直在通过JeffreyRichter的C/C++阅读Windows,并在有关将32位应用程序移植到64位环境的Windows内存架构的章节中看到以下片段。Ifthesystemcouldsomehowguaranteethatnomemoryallocationswouldeverybemadeabove0x00000000'7FFFFFFF,theapplicationwouldworkfine.Truncatinga64bitaddresstoa32bitaddresswhenthehigh33bitsare0causesnoproblemwhatsoever.我无法理解为什么

c++ - 使用 Win32/C++ API 更改 Windows 7 墙纸(操作未实现异常)

以下代码适用于Windows8.1(已测试)但不适用于Windows7。std::wstringloc=L"C:\\Users\User\\Desktop\\wallpaper.jpg";BOOLret=SystemParametersInfo(SPI_SETDESKWALLPAPER,0,(PVOID)loc.c_str(),SPIF_UPDATEINIFILE);当我在Windows7上运行该程序时,出现以下异常:First-chanceexceptionat0x76E3C41F(KernelBase.dll)inMyApp.exe:0xC0000002:Therequestedo

c# - 在 32 位机器上部署 64 位 C# winform 应用程序

我已经在64位机器上使用VS2012开发了一个C#winform应用程序,现在我想将它部署到32位机器上,但是我得到了“...不是有效的win32应用程序”形式的错误"每当我尝试在32位机器上安装和运行exe文件时。请建议我解决这种情况的最佳方法。谢谢! 最佳答案 听起来该项目是专门为x64编译的。纯.NET项目可以而且应该编译为“任何CPU”,这意味着它们将在x86和x64上运行。这通常是默认值。http://blogs.microsoft.co.il/sasha/2012/04/04/what-anycpu-really-mea

windows - 无法使用 powershell 从 32 位版本的 win2008 读取 64 位注册表项

我尝试使用powershell从32位Windows2008读取64位版本的WindowsServer2008r2上的以下注册表项,但该值显示为空白并且不返回任何值。可以帮助我了解如何从32位服务器读取64位注册key吗?$line="WIN-QENOBBC64B8"$regkey=[Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey([Microsoft.Win32.RegistryHive]::LocalMachine,$line)$ref=$regKey.OpenSubKey("SOFTWARE\Microsoft\MicrosoftS

c - Win32 - 在创建窗口之前拦截窗口的更好方法

我正在尝试自动化外部Windows应用程序。目标是在不显示任何事件窗口/启动画面且不从其他应用程序窃取焦点的情况下使此应用程序最小化启动。我用C编写了一个小程序,它在循环中调用EnumWindows()并使用ShowWindow()来最小化所需的窗口。它非常快,在80%的情况下都有效。不幸的是,有时应用程序窗口仍在显示并在短时间内窃取焦点。拦截窗口的更好(确定)方法是什么?使用SetWindowsHookExHook是唯一的选择吗? 最佳答案 您是否尝试过使用STARTUPINFOstructure的wShowWindow成员?你传

c++ - 在 win32 应用程序中动态设置 DPI 感知级别

我正在寻找任何方法来动态设置DPI感知级别(基于用户输入)。我遇到了this.它建议我应该使用setProcessDpiAwareness功能来设置意识水平。但此api调用仅受Windows8.1预览版支持。我可以使用任何其他方法动态设置Windows7及更高版本支持的Dpi感知级别吗?提前致谢。 最佳答案 在Windows8.1中每个显示器的DPI感知出现之前,有SetProcessDPIAware,从Vista开始支持。但是,令我印象深刻的是,您可能希望在运行时做出此决定。最佳做法是将应用程序设计为具有高DPI感知能力,并将这种

c++ - _WIN32_WINNT 定义在 header 中更改,这是否会导致二进制不兼容?

在VS2010中,我正在努力将应用程序更新到第三方库的新版本,该库要求_WIN32_WINNT至少为0x501,但另一个提供二进制共享库的第三方共享库在header中将其定义为0x500包含在应用程序中。如果修改了,是否会出现二进制不兼容或者这是一个无关紧要的更改?我是否必须从将其定义为0x500的库中请求新的二进制文件?我不确定如何判断这是否需要新的bin——我认为如果任何类/结构的大小或命名发生变化,或者任何方法/函数签名发生变化,则需要进行新的编译。 最佳答案 简短的回答:可能不会,但如果是的话,那你就进退两难了。长答案:_W

c++ - Win32 文件 IO 工作但 fopen 等。阿尔。失败。这里发生了什么?

以前从来没有过。如果我使用fopen()等函数从磁盘读取文件,fopen会成功,但FILE*内容看起来有点NULL-ish。然后我尝试fseek(SEEK_END)并报告文件大小为0字节。如果我对CreateFile()、GetFileSize()、ReadFile()执行相同的操作,它就会起作用。相同的功能,相同的路径...VS2013社区版,Win7x64,64位编译。我测试的文件很小(从不超过400字节)。它们位于E:盘(E:\temp),这是一个本地分区。我有什么想法需要焊接我的电脑来解决这个问题吗?:)staticvoidLoadFile(conststd::string&p

java - 如何确定 32BIT Java 的位置

有些时候JRE安装在特定版本的目录[1]中。所以我尝试编写一个DOS批处理或VBS脚本来确定最新安装的JRE832位的位置。但是在检查注册表项时“HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft”我注意到这仅包含有关64位Java运行时的信息。那么知道如何通过DOS或vbs确定最新安装的32位Java运行时的位置吗?这还应该考虑到可能会在系统上并行安装64位版本。另一种方法是在目录C:\ProgramFiles(x86)\Java中搜索文件。但JavaRuntime可能未安装在此目录中。[1]http://www.oracle.com/technetwork/j