jjzjj

windows - 64 位系统的整数大小差异(与我的旧 32 位 pc 系统混淆)

几个月前,我给自己买了一台配备CPUinteli7-2630qm和64位Windows的笔记本电脑。在这个系统下练习我的编程技能时,我遇到了一些整数大小方面的差异,这让我认为这可能是由于我的新64位系统。让我们看一段代码。C代码:#includeintmain(void){intnum=20;printf("%d%lld\n",num,num);return0;}问题:1.)我记得在得到这台新笔记本电脑之前,这意味着我仍在使用我的旧32位系统,当我运行这段代码时,程序将打印整数20由于%lld说明符,它旁边有一些随机数。2.)但是当我使用我的新笔记本电脑时,这种现象不再发生,它会正确地

c# - Windows 如何决定显示屏幕保护程序

Windows有一个内部机制,通过检查用户交互性和其他任务(有人正在观看视频等)来决定何时显示屏幕保护程序(或关闭屏幕)。是否有WinAPI允许我询问用户是否处于事件状态,或者他们最后一次处于事件状态是什么时候? 最佳答案 它被称为“空闲计时器”。您可以通过调用CallNtPowerInformation()来获取它的值,询问SystemPowerInformation。返回的SYSTEM_POWER_INFORMATION.TimeRemaining字段告诉您空闲计时器还剩多少时间。SystemExecutionState请求会告

c++ - 将多个参数传递给 _beginThreadEx

是否可以向beginthreadex传递多个参数?我知道我可以创建一个类或结构,但如果我有不相关的数据片段我不想合并到一个类或结构中怎么办?Boost库似乎允许多个参数,但我该如何为标准c++_beginThreadEx设置多个参数?#include#includeunsigned__stdcallmyThread(void*data){//C:\dev\defaultthreads\_threads.cpp|6|error:invalidconversionfrom'int*'to'int'[-fpermissive]|int*x=static_cast(data);//int*x=

c++ - GetProcAddress 函数返回 NULL

我尝试动态加载C++dll,首先我使用“LoadLibrary”函数加载了dll,它正确地获取了它的句柄。之后我尝试使用“GetProcAddress”获取DLL文件函数的函数指针,它返回NULL。请找到我的DLL代码和测试应用程序代码,让我知道代码中哪里出了问题。虚拟2.hnamespacenewer{classdllclass{public:static__declspec(dllexport)intrun(inta,intb);};}虚拟2.cpp#includeusingnamespacestd;#include"dummy2.h"namespacenewer{intdllcl

c++ - Visual C++ 在函数末尾附加 0xCC (int3) 字节

这是我第一次来,我真的希望你们能帮助我,因为我现在已经没有想法了。我已经搜索了几个小时的答案,但找不到真正有效的答案。我想直接将代码注入(inject)到正在运行的进程中。是的,你没看错。我正在尝试将代码注入(inject)另一个应用程序,并且-不管你信不信-这只是为了扩展它的功能。我在Windows上使用VisualStudio2012ExpressEdition。我有以下代码:__declspec(naked)voidFoo(){__asm{//Inlineassemblycodehere}}__declspec(naked)voidFooEnd(){}intmain(){cout

c++ - 为什么返回 Windows BOOL 数据类型而不是 int?

来自MSDN.BOOLWINAPIGetMessage(_Out_LPMSGlpMsg,_In_opt_HWNDhWnd,_In_UINTwMsgFilterMin,_In_UINTwMsgFilterMax);声明如下:“如果函数检索到的消息不是WM_QUIT,则返回值为非零。如果函数检索到WM_QUIT消息,则返回值为零。如果有错误,返回值为-1。”boolean值不是true还是false?看来我们这里有三个选项,true、false和oopsie_daisy....因此,在输入此内容时,我认为我应该检查WinDef.h并在其中找到:typedefintBOOL;嗯……BOOL只

c# - 在 C# 中注册 Win + L 热键时出现问题

我正在使用下面的代码禁用热键,如Alt+f4、ctrl+c,它们运行良好。但是我无法使用以下代码注册win+L。namespaceKioskMode{publicpartialclassTest:Form{#regionDynamicLinkLibraryImports[DllImport("user32.dll")]privatestaticexternintFindWindow(stringcls,stringwndwText);[DllImport("user32.dll")]privatestaticexternintShowWindow(inthwnd,intcmd);[Dl

c# - .NET Windows 服务 (WTSSendMessage) : Displays message on XP but not Windows 7

我在Windows7上使用.NET窗口服务显示消息时遇到问题。它在WindowsXP上正常工作。我知道它在Windows7上不起作用,如Microsoft网站和一些论坛(包括Stackoverflow)中所述。我按照Stackoverflow中提到的来自Pinvoke.NET的以下示例(使用WTSSendMessage)进行了操作。但它也没有工作。该示例在WindowsXP上正常工作。有人可以帮助我吗,因为这是一个非常大的问题需要尽快修复,因为我们已经迁移到Windows7。签名:[DllImport("wtsapi32.dll",SetLastError=true)]staticex

C++:如何优雅地将动态数据读入结构?

假设我将header存储在某个文件中,但header的某些部分是动态长度,看起来像这样:structHeaderTest{intsomeparam;intmore;intarrsize;//howbigarray,readarrsizeelementsintoarr:intarr[arrsize];//notvalid};是否有一些优雅的方法可以将动态数据读入结构? 最佳答案 您可以像这样定义您的结构,而不是在您的结构中使用arr和arrsize变量:structHeaderTest{intsomeparam;intmore;std

c# - GetFocus - Win32api 帮助

我正在尝试从用户计算机上打开的表单中获取选定的文本。目前我已经尝试使用GetFocus定义为'[DllImport("user32.dll")]staticexternintGetFocus();'在api中它说-如果窗口附加到调用线程的消息队列,则检索具有键盘焦点的窗口的句柄。这解释了为什么我的应用程序可以获取选定的文本从我的应用程序的一部分窗口,而不是外部窗口,例如pdf。我可以使用哪种替代win32方法来满足此目的?谢谢。编辑:这是目前的尝试[DllImport("user32.dll")]静态外部intGetFocus();[DllImport("user32.dll")]st