Articles of visual c ++

如何在Windows上构buildgnu`libiconv`?

我想在Windows上构build一个静态库(* .LIB文件) GNU libiconv ,与Visual C ++中的其他库一起使用。 我正在使用的其他库是使用“multithreadingDLL”(/ MD)运行时选项构build的。 所以,我需要使用相同的选项来构buildlibiconv。 问题是libiconv使用GNU构build系统,我想用/ MD选项编译。 你可以在这里看到libiconv的源代码结构: http ://cvs.savannah.gnu.org/viewvc/libiconv/?root=libiconv Zlatkovic先生维护libxml2的GNU libiconv的Windows端口 你可以在这里看到他们: ftp://xmlsoft.org/libxml2/win32/iconv-1.9.2.win32.zip ftp://xmlsoft.org/libxml2/win32/iconv-1.9.2.win32.zip 我不能使用他的端口。 我需要从最新版本的libiconv-1.13开始构build。 我不知道这个人是如何移植它的? 有人可以告诉我如何从这个build立* .lib并使用MSVC编译它? 编辑: 其实,我需要build立几个相同的设置GNU库。 所以,如果我得到一个库的解决scheme。 我可以为所有其他人做同样的事情。

如何使用DoEvents()而不是“邪恶”?

一个简单的searchDoEvents带来了很多的结果,基本上,导致: DoEvents是邪恶的。 不要使用它。 使用线程代替。 一般引用的原因是: 重入问题 performance不佳 可用性问题(例如,在禁用的窗口上拖放) 但是一些值得注意的Win32函数(如TrackPopupMenu和DoDragDrop 执行自己的消息处理以保持UI的响应,就像DoEvents一样。 但是,这些问题似乎都没有遇到这些问题(performance,重新入侵等)。 他们是如何做到的呢? 他们如何避免DoEvents引用的问题? (或者他们?)

只有当我没有英文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, […]

在Windows中创build一个C ++非阻塞计时器

在Linux上,我将使用fork()创build一个subprocess,这将是我的倒计时器,一旦计时器结束,subprocess将向父进程发送一个信号,告诉它计时器已经结束。 父进程然后应该相应地处理信号。 我不知道如何在Windows上做到这一点。 这里的一些人推荐使用线程,但是他们从来没有写过任何示例代码来显示如何去做。 最重要的是定时器是非阻塞的,意味着它在后台保持倒计时,而程序正在接受用户的input并正常处理。 你能告诉我怎么样? 编辑: 该应用程序是一个控制台之一。 请给我示例代码。 谢谢! 更新: 所以在阅读了这里的一些build议之后,我在这里search了一些答案,发现这个有帮助。 然后,我写了下面的代码,它的工作,但不是它应该是: #include <Windows.h> #include <iostream> #include <string> using namespace std; #define TIMER_VALUE (5 * 1000) //5 seconds = 5000 milli seconds HANDLE g_hExitEvent = NULL; bool doneInTime = false; string name; bool inputWords(); //The below function will be called when the timer ends […]

为什么初始化一个对象为空

我在MSDN的帮助下学习Windows编程。为什么有人会像下面这样初始化一个对象? WNDCLASS wc = { }; 这是否将对象的所有内存零? 整个源代码如下: #ifndef UNICODE #define UNICODE #endif #include <windows.h> LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE, PWSTR pCmdLine, int nCmdShow) { // Register the window class. const wchar_t CLASS_NAME[] = L"Sample Window Class"; WNDCLASS wc = { }; wc.lpfnWndProc = WindowProc; […]

在C / C ++中检测string的编码

给定一个指向字节数组(char)的指针forms的string,如何检测C / C ++中的string编码(我用过visual studio 2008)? 我做了一个search,但大多数样本是在C#中完成的。 谢谢

如何在MS Visual C ++中执行Matlab函数?

我有两个独立的function,一个是MS Visual C ++,另一个是Matlab。 如何在MS VISUAL中执行Matlab文件? 有一个Windows函数加载.m文件,并直接执行它?

如何获取Windows 8中活动窗口的标题颜色

如何在Windows 8中获得活动窗口的标题颜色? 我试图调用GetSysColor(COLOR_ACTIVECAPTION)但它返回不同的颜色。 这很奇怪,因为在Windows 7中它是正确的。 有没有其他方式如何获得活动窗口的标题颜色或任务栏的颜色?

为什么CreateSymbolicLink()成功,但生成的链接是无效的

#include <windows.h> int main() { CreateSymbolicLink(L"d:\\symbolic_link_to_notepad.exe", L"c:\\windows\\notepad.exe", 0); // Success! } 但是,当我双击d:\ symbolic_link_to_notepad.exe来启动记事本时,popup一个错误消息框,并说没有findpath。 根源是什么?

拦截FILESytemCall进行删除

有没有办法检测删除文件之前,Windows执行删除? 我发现FileSystemWatcher类,但只有在执行删除操作后才会引发事件,但是我想在用户/进程select删除操作时捕获删除操作。 您可以监视文件系统表,但要寻找更好的方法。 谢谢你的帮助。