草庐IT

C++ 如何在 Winsock 中正确接收文件?

我正在使用C++开发一个CHAT程序。并陷入发送/接收文件的问题。我的服务器端是Python,它在FlaskApp的后台运行,接受TCP连接并将传入/传出数据转发到聊天客户端。它没有问题并且效果很好。我的问题是客户端接收。我添加了发送和接收文件的功能。虽然发送正常,没有错误(经过测试并且有效)。在客户端接收让我很头疼。我正在使用以下方法接收文件,无论它是二进制文件还是文本文件。//filebufisdefinedas//charfilebuf[BUFFER];//BUFFERis1024.voidCHAT::recvFile(){intfsize;std::ofstreamrecvfi

c++ - 使用 CMake 以 C++/WinRT 为目标

我正在编译一个基于CMake的第三方C++共享库,以便在UWP应用程序中使用。根据MSDN上的文档,我一直在使用标志-DCMAKE_SYSTEM_NAME=WindowsStore-DCMAKE_SYSTEM_VERSION=10.0进行构建。虽然这对于标记任何不允许或不可用的API非常有用,但我的理解是它设置了/ZW标志,从而启用C++/CX。除了一些小问题(例如:库处理网络,并使用变量名称interface显然是C++/CX的保留关键字),这大部分都很好。更根本的是,由于我正在构建标准C++库,所以我宁愿使用标准C++(C++/WinRT)。有没有办法告诉CMake以Windows

c++ - 我如何在 BCrypt 中使用带有 secret 的 AES-GMAC?

我正在尝试将AES-GMAC与BCrypt(如果有帮助,则为MicrosoftCNG)一起使用,但文档似乎与我的预期相矛盾。RFC4543声明AES-GMAC需要一个key(这是我所期待的),但是BCryptCreateHashfunction指出pbSecret除非BCRYPT_ALG_HANDLE_HMAC否则不使用提供。我试过使用BCRYPT_ALG_HANDLE_HMAC在BcryptOpenAlgorithmProvider正如我所料,我得到一个NOT_SUPPORTED使用BCRYPT_AES_GMAC_ALGORITHM时与BCRYPT_ALG_HANDLE_HMAC.我

c++ - Makefile 在 Linux 下工作但在 Windows 下不工作,无法在子目录中找到文件

我有一个在linux下工作的makefile(gnumake),但是当把它移植到windows时它不工作。makefile的目标是制作位于不同子目录中的所有*.cpp文件,并将它们编译成单个BUILD_DIR中的*.obj文件。在linux和windows之间我只调整了SOURCES变量,显示了linux行但注释了。当我检查所有名称和目录时,它们显示相同的(它们的透视表示法中的相对路径)和我所期望的。我在Windows上收到的“错误消息”是:make:***Noruletomaketarget'DEM.cpp',neededby'DEM.obj'。停止。在Debug模式下它说:文件“D

c++ - 为什么对 BeginPaint() 的调用总是生成 WM_NCPAINT 消息?

我在Win32API上遇到了问题。我有一个程序,当它处理WM_PAINT消息时,它调用BeginPaint来剪辑区域并验证更新区域,但是BeginPaint函数始终生成具有相同更新区域的WM_NCPAINT消息,即使需要重新绘制的触摸部分仅在客户区域内。有人知道为什么会这样吗?它位于具有WS_CHILD样式的子窗口上。 最佳答案 WM_PAINT的MSDN条目说:ThefunctionmayalsosendtheWM_NCPAINTmessagetothewindowprocedureifthewindowframemustbepa

c++ - 如何禁用无线网络连接通知气球?

我想以编程方式禁用连接到无线网络时收到的通知。我知道有一种方法可以禁用所有通知(请参阅here),但是有没有一种方法可以只禁用Windows无线管理器发出的通知(即wlanapi.dll)。非常感谢! 最佳答案 我认为这不可能,除非在Windows7中可用。(它显然包括一个更可配置的托盘程序管理器)。 关于c++-如何禁用无线网络连接通知气球?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/ques

c++ - 我可以使用 FindFirstChangeNotification 和 FindNextChangeNofication 而不是 ReadDirectoryChangesW 获取指定目录中的文件信息更改吗?

我想在指定目录的文件或子目录发生任何更改时收到通知。我用以下简单的代码段实现了这个功能:UINTmyThreadFunc(LPVOIDpParam){intchangeCount=0;while(true){HANDLEchangeHandle=FindFirstChangeNotification(L"C:\\",TRUE,FILE_NOTIFY_CHANGE_FILE_NAME);WaitForSingleObject(changeHandle,INFINITE);cout=10)break;if(FindNextChangeNotification(changeHandle)==

c++ - 如何在 Visual C++ 中使用 Windows 窗体创建特定控件?

我是在C++中使用Windows窗体的新手(一般情况下),我不确定这个名称或者是否可以这样做。目前我正在做一个学校项目,我们必须为一个想象中的书店制作一个程序。我现在正在尝试制作一份list,显示“客户”购买的商品。我必须按价格和ISBN以及该书的任何其他变量对其进行排序。本质上,我正在尝试制作如下内容:我只需要知道如何开始。我无法弄清楚控件的名称是什么,甚至无法在用户每次单击标题时对其进行排序。 最佳答案 你需要写一个托管的C++请看http://www.codeproject.com/KB/miscctrl/mfcandwind

c++ - 构建垂直的 IE 资源管理器栏(带​​对象)(如收藏夹面板)

我正在尝试构建一个垂直浏览器栏(IE7中的bandobject,它“粘附”在所有选项卡上(类似于“收藏夹”栏)。如果您不知道我在说什么,请打开IE7并转到“查看”->“资源管理器栏”->“研究”以打开“研究”栏。在同一窗口中打开一个新标签,注意研究栏不会显示在新标签或您打开的任何其他新标签上。另一方面,如果您改为打开收藏夹栏(查看->资源管理器栏->收藏夹)并打开另一个选项卡。您会注意到该栏显示在所有窗口上。这可以通过使用band对象实现吗? 最佳答案 通常,在IE7/8中,这些带区对象是使用每个选项卡的单独实例创建的。为了同步您的

c++ - 如何编写垂直右侧的 IE 资源管理器栏

我之前写过浏览器栏(band对象),AFAIK垂直浏览器栏只能在左侧。然而,当我看到HP的浏览器栏停靠在右侧时,我感到很惊讶:我在谷歌上搜索了一下,但找不到任何相关资源。有谁知道如何构建一个垂直的右侧浏览器栏? 最佳答案 我一直在研究如何Kutano的右侧栏就像我想做的一样。这对您的问题没有直接帮助,因为我还没有答案,但这是我所知道的:Kutano似乎不是一个普通的ExplorerBar,因为在HKCR\Software\Microsoft\InternetExplorer\ExplorerBars中没有它的条目,它也没有出现在查看