Articles of c + +

什么是SDKDDKVer.h?

所有使用MSVC创build的项目都有stdafx,这是预编译的头文件,我知道它们是什么,但是targetver.h呢? 它包括SDKDDKVer.h,我找不到那是什么头。 这个是来做什么的 ?

使用SDL时未定义对WinMain @ 16的引用

我一直有很多麻烦让一切工作,以便我可以开始在Windows上开发,就像我通常在编码时使用的Linux一样。 在尝试编译SDL程序时,我有一个相当奇怪的问题。 一旦我包含SDL库,该程序拒绝编译,给我这个错误: c:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../libmingw32.a<main.o>: In function 'main': C:\MinGW\msys\1.0\src\mingwrt/../mingw/main.c:73: undefined reference to 'WinMain@16' collect2: ld returned 1 exist status 我在控制台上使用MinGW。 举个例子,使用 gcc -o test main.c 这编译罚款: #include <stdio.h> #include <stdlib.h> int main(int argv, char **argc) { printf("Hello, world!\n"); return 0; } 但是,只要我添加#包括(即使没有任何SDL函数被调用),我得到上面提到的错误 使用: gcc -o test main.c -lSDL 这不能编译: #include <stdio.h> #include <stdlib.h> #include <SDL/SDL.h> int […]

只有当我没有英文string表时,LoadString才起作用

我希望能够以编程方式修改应用程序的语言,或者至less使用控制面板 – >区域和语言选项 – >格式中指定的语言。 如果我添加一个英文string表,做一个法语和德语的副本,并删除英文的一个,我可以编程方式加载法语和德语string之间切换。 如果我保留英文版,无论如何,当我尝试加载德文或法文时,英文string会被加载。 我认为这是一个资源加载程序错误,如果资源加载器忽略SetThreadLocale,如果它find一个与windows ui语言(例如Windows资源pipe理器菜单的语言)相同语言的string表。 我试图将控制面板 – >区域和语言选项 – >格式更改为法语,但没有任何效果。 资源编辑器显示没有附加语言的法语string表,但我的程序仍然总是加载英文string。 将此更改复制到系统帐户也不起作用。 这是我试过的代码: #include "stdafx.h" #include <iostream> #include "windows.h" // this should go to stdafx.h #include "resource.h" // this should not go to stdafx.h using namespace std; int _tmain(int argc, _TCHAR* argv[]) { // 1036 = french, 1031 = german SetThreadLocale(MAKELCID(1036, […]

我如何解决这些libcurl链接错误?

[Administrator@windows ~]$ g++ client.cpp -lcurl -o client.exe C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ccKXFUtC.o:client.cpp:(.text+0x23): undefined reference to `_imp__curl_global_init' C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ccKXFUtC.o:client.cpp:(.text+0x5f): undefined reference to `_imp__curl_formadd' C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ccKXFUtC.o:client.cpp:(.text+0x9b): undefined reference to `_imp__curl_formadd' C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ccKXFUtC.o:client.cpp:(.text+0xa2): undefined reference to `_imp__curl_easy_init' C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ccKXFUtC.o:client.cpp:(.text+0xc8): undefined reference to `_imp__curl_easy_setopt' C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ccKXFUtC.o:client.cpp:(.text+0xe4): undefined reference to `_imp__curl_easy_setopt' C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ccKXFUtC.o:client.cpp:(.text+0xf1): undefined reference to `_imp__curl_easy_perform' C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ccKXFUtC.o:client.cpp:(.text+0x101): undefined reference to `_imp__curl_easy_cleanup' C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ccKXFUtC.o:client.cpp:(.text+0x10e): undefined reference to `_imp__curl_formfree' C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ccKXFUtC.o:client.cpp:(.text+0x11b): undefined reference […]

你在C#中获取Windows安装SID?

我知道这个问题已经被问了很多次,但是没有人回答我的问题。 从Comptiat A +的学习中我知道,当使用自动化(无人值守)安装时,技术人员必须返回并在每台机器上激活操作系统之前更改MACHINE SID。 似乎有很多关于如何使用networking来获取SID的问题,但是我知道还有一个不能改变的机器SID。 对于那些使用Fix-It Utilities启动盘的用户来说,有一个button“更改SID”,如果它已经被激活,将会导致Windows无法启动。 我的问题与此相似,但他的问题从来没有真正的答案。 我的问题是,如何使用c#获得MACHINE Windows安装SID。

确定networking连接链路速度

如何以编程方式确定活动networking连接的networking连接链接速度 – 就像“任务pipe理器”在“networking”选项卡中显示的那样? 我并不是真的在可用的带宽之后,只是当前连接的数字,例如54Mbps,100Mbps等。

CreateProcess:在C ++ / Windows中将子stdoutredirect到父标准输出

根据MSDN,这将小孩stdoutredirect到父标准输出,但它没有,什么是错的? PROCESS_INFORMATION pi; STARTUPINFOA si; ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(si); ZeroMemory( &pi, sizeof(pi) ); si.hStdOutput = GetStdHandle(STD_OUTPUT_HANDLE); si.hStdError = GetStdHandle(STD_ERROR_HANDLE); si.dwFlags |= STARTF_USESTDHANDLES; BOOL ret = CreateProcessA( 0, cmd_line, 0, 0, TRUE, CREATE_NO_WINDOW, 0, 0, & si, & pi); 使用DuplicateHandle没有帮助: HANDLE out, err;//global variables … PROCESS_INFORMATION pi; STARTUPINFOA si; ZeroMemory( &si, sizeof(si) ); […]

GetAdaptersInfo和GetAdaptersAddressess BufferLength参数

我在C ++中有一些遗留代码,这些代码有一些我不明白的地方。 我在运行Windows XP的机器上运行Visual C ++ 2008 Express Edition。 代码使用一些Windows函数: GetAdaptersInfo和GetAdaptersAddressess。 我意识到这两个的最后一个参数是一个指向缓冲区大小的指针,因为它是in_out,所以可以在函数内改变。 我的问题是:这些function是否应该改变缓冲区的长度? 在我的代码中,每次调用这些函数时,缓冲区长度variables都被初始化为0,调用该函数之后,它仍然是0。

C#发送键盘input

如何将键盘input消息发送到当前select的窗口或之前select的窗口? 我有一个程序,我用它来input一些字符,这些字符在我的键盘上不存在,如果我可以直接发送input,而不是我必须一直复制和粘贴,我希望它。 编辑: 这个应用就是input德国变音符号。 我是美国人,在德国工作。 我正在美国键盘上工作,并不时input变音符号/欧元符号/尖锐的S.目前我有一个简单的WinForms应用程序与一个文本框和一些button,其上的额外字符。 我input到文本框中,然后按button将文本追加到文本框。 然后我复制文本并粘贴到任何地方。 如果我只需点击其中一个button就可以发送文本,而且在input/input的地方都可以发送。 目前的scheme工作得很好,但我可以做得更好。

如何在C中打开Windows中的默认Web浏览器?

在Windows中的C / C ++中,如何使用默认浏览器打开网站? 在Mac OS X中,我做system("open http://url");