Articles of c + +

检测Windows(IE)代理设置更改

我使用WinHttpGetIEProxyConfigForCurrentUser和朋友收集当前的代理信息,当我的应用程序启动时,在每个请求看起来会大大降低性能,因为它坐几秒钟收集代理数据。 有没有一种方法来检测Windows代理设置何时更改,以便我可以caching信息,直到它更改? 谢谢,J

Windows系统时间从NTP时间更新发生变化时是否有事件?

我希望在Windows系统date/时间在我的C#应用​​程序中更改时得到通知。 我发现了SystemEvents.TimeChanged事件,为此MSDN文档说: 在用户更改系统时钟的时间时发生。 如果NTP更改时钟,这个事件是否也会被触发? 还是有另一个我可以订阅的事件? 实施细节: 我想要一个timer.Elapsed事件在特定的date/时间触发。 我的代码计算用于定时器的时间间隔。 如果有系统时间变化,则需要重新计算该计算以计算新的时间间隔并更新计时器。 答案摘要 感谢所有的评论。 我已经在下面进行了总结以供将来参考: SystemEvents.TimeChanged触发用户更改,系统调用与NTP服务器的重新同步 如果在Windows服务中运行,则需要处理消息泵以获取TimeChanged事件。 这可以通过运行调度程序来实现。 NTP服务器不适用离散系统date更改。 考虑计算得到的时钟漂移以及本地时钟与其他NTP服务器之间的偏移量,逐渐应用NTP时钟调整 对于我的实现,最好是定期评估定时器时间间隔,以考虑任何系统时间变化,而不是一次设置时间间隔,并将其放到一边。

修改GetCommandLine()的命令行参数

我试图修改我的可执行文件的命令行参数,以便GetCommandLine()将返回我设置的string。 由于我想在任何人之前修改命令行值,我已经通过/ ENTRY开关将我的入口点改为testme()函数,并且还设置了/ NODEFAULTLIB选项以排除CRT。 使用下面的代码为什么我可以通过CommandLine更改string缓冲区指针,但不能分配一个全新的缓冲区? 代码: #include <Windows.h> #include <winternl.h> typedef NTSTATUS (WINAPI *PFN_NtQueryInformationProcess)( IN HANDLE ProcessHandle, IN PROCESSINFOCLASS ProcessInformationClass, IN PVOID ProcessInformation, IN ULONG ProcessInformationLength, _Out_opt_ PULONG ReturnLength ); int testme() { // Get PEB block address PROCESS_BASIC_INFORMATION pbi; ULONG result; PFN_NtQueryInformationProcess pfnQueryProcess = (PFN_NtQueryInformationProcess) GetProcAddress(LoadLibrary("ntdll"), "NtQueryInformationProcess"); pfnQueryProcess(GetCurrentProcessId(), ProcessBasicInformation, &pbi, sizeof(pbi), &result); // Modify […]

套接字错误无法在WinSock2.h中获取函数

我创build了一个套接字包装类,但我有太多的错误,我不知道如何解决。 我试过Winsock教程错误 , 不能在MSVC 2010中包含Winsock2.h ,但没用 这里是代码: //#define WIN32_LEAN_AND_MEAN #include <iostream> #include <string> #include <Windows.h> #include <WinSock2.h> #include <WS2tcpip.h> #pragma comment(lib,"ws2_32_lib") using namespace std; #define WM_SOCKET 0x10000 class Socket { }; 这里是错误: Error 107 error C3861: 'WSAStartup': identifier not found \85 1 Project2_SocketLib Error 89 error C3861: 'WSASetLastError': identifier not found C:\Program Files (x86)\Windows Kits\8.0\Include\um\WS2tcpip.h […]

如何在Windows上安装FTGL库?

我想要使​​用需要FTGL库的haskell FTGL绑定。 似乎没有二进制的窗口,我找不到任何有用的信息如何编译它。 最简单的方法是什么?

在Windows上的C ++ – 控制台窗口只是闪烁并消失。 这是怎么回事?

可能重复: Visual Studio控制台应用程序 – 防止窗口closures。 我开始在Windows上学习C ++,我正在尝试几个不同的开发环境:1.使用Cygwin编译器的Netbeans 2. MS Visual Studio 2010 对于其中的任何一个,当我编写一个非常简单的Hello World程序时,我都会构build它,并且很好。 但是当我尝试运行该程序时,命令提示符窗口很快popup,然后立即消失。 无论是在Debug还是Releaseconfiguration中,都会发生这种情况。 请帮忙 – 我看不到我的程序输出! 🙁 谢谢。 编辑1:感谢您的答复。 这是我的代码: #include <iostream> int main() { std::cout << "This is a test." << std::endl; return 0; } 我试过Ctrl + F5的“无debugging开始”,这是行不通的。 它仍然闪烁黑色控制台屏幕,然后立即消失。 我也尝试添加在std :: cin.get(); 这与Ctrl + F5的作品,但不是一个真正的…不雅的解决方法? 我宁愿让我的程序在最后的forms。 断点工作,但我必须运行debugging和控制台窗口闪烁并消失,但它然后停留在后台。 任何方式让控制台留在前台,所以我可以看到程序输出马上? 似乎这是它应该如何工作。 还有什么想法? 为什么不能按Ctrl […]

UAC提示标高 – 它是如何工作的?

当需要执行某些安全相关操作时,Windows在“安全桌面”上显示UAC提示。 显然有一些API创build了安全桌面,并在其上创build了一个窗口,但我不知道在哪里可以find涉及的机制。 我想我可以对UAC机制进行逆向工程,但是我并不擅长逆向工程(我敢肯定,这涉及到一些法律方面的问题……) 无论如何,我知道有一个API可以在当前会话中创build新的桌面,但是在任何可以find的文档中都没有提到安全的桌面。 出于好奇,我想知道整个安全桌面/ UAC提示符创build如何工作。 免责声明:这纯粹是理论上的,我不打算在我的任何代码中进行部署。

在当前进程中获取JavaVM *的所有实例?

这只针对Windows。 JNI是否提供了返callback用进程的所有JavaVM*实例的API? 考虑下面的情况,一个C ++ DLL被注入到一个java.exe进程中。 现在的问题是,C ++ dll如何在正在运行的进程中findJavaVM*的当前实例? 据我所知,所有的JNI调用API都需要一个JNIEnv对象,它只能从JavaVM*获得JavaVM*对吗? http://docs.oracle.com/javase/1.5.0/docs/guide/jni/spec/functions.html 获得JavaVM*的传统方法是通过JNI_OnLoad但是由于我没有编写一个本地库供Java使用,我不认为这样做会有效果。 http://docs.oracle.com/javase/1.5.0/docs/guide/jni/spec/invocation.html

如何在.NET中执行应用程序内通信

在C#中将数据从一个Windows Forms应用程序(一个办公室插件)传递到另一个(用C#编写的exe文件)的最佳方式是什么?

在结构上溢出的整数

对于不支持64位算术的编译器,有ULARGE_INTEGER联合 。 如果最后一行的加法溢出,下面的代码会发生什么? ULARGE_INTEGER u; u.LowPart = ft->dwLowDateTime; u.HighPart = ft->dwHighDateTime; u.LowPart += 10000; //what if overflow? 相关问题: ULARGE_INTEGER工会的重点是什么?