草庐IT

c++ - Winsock : Echo server replying twice,,当我刚刚将它编程为执行一个 send() 调用时

我正在用C++为Windows做一个简单的TCP服务器来回显传入的数据。我有问题。在我解释我的问题之前,我必须说Winsock设置正确并且任何IP地址作为源都会发生这个问题。建立连接时的一般行为是这样的:Intheloopthatrunswhileconnectionstillalive,itmustechodata,andprecedeitwithREPLYword.为此,我目前正在使用两个send()调用:一个电话单独发送“REPLY”。另一个调用只是发回接收到的数据。但是使用PuttyClient,我得到了这个:回复data_echoed回复。如果是第一个,为什么在最后一个发送调

c++ - Visual Studio 强制桌面 API

我是VisualStudio的新手,我尝试编译使用VirtualProtect函数的代码。编译失败,我本来以为是链接问题,但经过进一步调查,甚至函数的常量都没有初始化,所以问题似乎来自标题。我找到了VirtualProtect函数的头文件(memoryapi.h包含在winbase.h包含在windows.h中),函数的声明依赖于这个声明:#ifWINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)它似乎是一个宏,用于定义编译器根据平台应该使用哪些API。那么,如何更改项目的配置以将其设置为纯桌面应用程序?我不知道为什么VS坚持要为我正在编译

在正方形上使用时的 C++ 旋转矩阵问题

我正在尝试在C++中应用一个旋转矩阵,它围绕指定的原点将正方形的所有点旋转指定的度数。问题在于它基于win32控制台,因此每个点都必须对应一对整数,而不是浮点值。如下图所示,旋转正方形的整体形状与预期结果一致,但其中存在多个“孔”。这是我的源代码:#include#includeusingnamespacestd;enum{W=50,H=50,S=25};//Width,Height,SquaresizestructVector2i{intx;inty;Vector2i(){}Vector2i(int_x,int_y):x(_x),y(_y){}};structSquare{boolD

c++ - 如何确定哪个 Windows DLL 正在用于函数调用?

我一直在研究_vsnprintf并了解到它在ntdll.dll和msvcrt.dll中可用。我可以使用GetModuleHandle和GetProcAddress来访问_vsnprintf,例如:staticint(__cdecl*p__vsnprintf)(char*str,size_tcount,constchar*format,va_listvalist);staticvoidinit(constchar*dll){HMODULEhmod=GetModuleHandleA(dll);if(hmod){printf("***Testing%s***\n",dll);p__vsnpr

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

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

c++ - 使用 COM 在 Windows 上的本地计算机上进行进程间通信

我正在研究使用COM和C++在Windows上进行进程间通信的选项。我找到了thisarticleonMSDN,提供了Windows的进程间通信选项列表,COM就是其中之一。但是,不幸的是,COM选项只列出了很多细节。有人对如何在Windows上使用COM进行进程间通信有任何关于文档或其他资源的指示吗?我对与远程机器通信不感兴趣(所以:没有DCOM);我只对同一台本地计算机上的进程间通信感兴趣。想法是定义一些自定义的COM接口(interface)来实现一些自定义的通信协议(protocol),然后有一个服务器程序和一个客户端程序(每个程序都在自己的进程中,运行在同一台本地机器上),并

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

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

c++ - WinAPI : Add style to combo box

我正在尝试将CBS_OWNERDRAWFIXED样式添加到现有的组合框,我的代码不起作用,我也不知道为什么。我怀疑可能是表达oldStyle|addedStyle无效,但我不明白为什么。HWNDhwnd=CreateWindow(L"ComboBox",L"",WS_CHILD|WS_VISIBLE|CBS_DROPDOWNLIST,200,200,200,200,parentHandle,(HMENU)1,GetModuleHandle(NULL),NULL);autocomboBoxStyle=GetWindowLongPtr(hwnd,GWL_STYLE);comboBoxSty

c++ - Windows proc/callback 函数可以是类的成员函数吗?

例如,当您在windows的屏幕上创建一个窗口时,您会创建一个回调函数来接收来自windows的消息LRESULTCALLBACKWndProc(HWNDhWnd,UINTmsg,WPARAMwParam,LPARAMlParam)你能不能让这个函数成为一个类的成员函数?如果是这样,我该怎么做?我希望回调函数成为类成员的原因是可以访问某些变量,同时仍然封装变量。例如,我保存了窗口的宽度和高度,所以如果它们需要更改,我可以直接在回调函数中更改它们。如果没有,您对我如何着手解决这个问题有什么建议吗?让回调函数访问封装变量? 最佳答案 就

c++ - 如何从 virustotal.com 中删除恶意软件标志

关闭。这个问题需要debuggingdetails.它目前不接受答案。编辑问题以包含desiredbehavior,aspecificproblemorerror,andtheshortestcodenecessarytoreproducetheproblem.这将有助于其他人回答问题。关闭7年前。Improvethisquestion我使用C++Win32API和boost库编写了自己的代码。代码编译为适用于Windows的EXE应用程序。我可以保证它不含恶意软件,但virustotal.com报告称,56款防病毒软件中有9款会将exe文件识别为带有恶意软件。我看不出为什么会发生这种