草庐IT

c++ - 我必须在 VS 2008 中使用 "Visual"C++ 吗?

我是VisualStudio2008(.NETFramework3.5)的新手,正在开发Windows窗体应用程序。启动IDE,新建项目的唯一选项在类别下:视觉基础VisualC#VisualC++我做了VisualC++->CLR->WindowsFormsApplication但是,模板代码在“VisualC++”语法中。如何使用VisualStudio2008使用普通C/C++创建新的GUI项目?请注意,我上次这样做是在VisualStudioC++6.0中使用MFC如果我遗漏了基本原则,请解释。谢谢!示例:http://msdn.microsoft.com/en-us/libr

c++ - 使用 C++ 获取 Windows 文件信息

有没有什么方法可以使用C++检查Windows文件的某些属性?需要的格式是上次访问日期、MIME类型、...对于其他一些信息提取,我正在使用Boost文件系统。提前致谢 最佳答案 对于文件修改日期,您可以直接使用Windows的API(GetFileTime())或使用boost::filesystem::last_write_time().至于MIME类型,据我所知没有真正的API。您基本上必须阅读注册表项HKEY_CLASSES_ROOT\.并寻找一个值ContentType.如果有,它包括为扩展设置的MIME类型。

c++ - 什么是 Win32 消息编码?

如果我阅读PostMessage的描述API,它有这样一句话:Thesystemonlydoesmarshallingforsystemmessages(thoseintherange0to(WM_USER-1)).Tosendothermessages(those>=WM_USER)toanotherprocess,youmustdocustommarshalling.我很好奇“消息编码”是什么? 最佳答案 消息有时会在其参数中传递指向内存缓冲区的指针。如果您按原样从一个进程向另一个进程发送内存地址,则该地址在接收进程中将具有不同

c - 释放的内存不会导致页面错误

在为进程保留和提交虚拟内存的实验中,我使用VirtualAlloc分配了64K字节的内存,memcpy将测试字符串放入其中,printf像一个字符串一样,使用VirtualFree和MEM_RELEASE标志释放内存,然后再次printf。由于某种原因,没有触发页面错误。这是为什么?#include#includeINTmain(DWORDargc,LPSTRargv[]){SYSTEM_INFOinfo;DWORDdwPageSize;DWORDdwMemSize;LPVOIDlpvMem;GetSystemInfo(&info);dwPageSize=info.dwPageSize

c++ - 哪个模块在 Windows 上实现了 CreateWindowW?

我刚刚在我的应用程序中遇到问题,我需要获取CreateWindowW的静态地址功能。就像这样:&ShowWindow;但是,当使用CreateWindowW执行相同的操作时,我得到编译器错误Identifier"CreateWindowW"isundefined(它是一个宏)。我实际上找不到这个函数的定义位置(哪个DLL),甚至找不到pinvoke.net没有提到这一点。在一些网站上提到它是user32.dll,但是GetProcAddress我的函数里面它返回空指针。我迷路了,Windows上的哪个模块为此功能链接?如果我尝试连接调试器并跟踪对这个函数的调用,VisualStudio

c++ - 使用C++编程时,我应该如何在win32中创建一个子窗口?

我是C++以及Windows编程的新手..我已经使用msdnCreateWindow()函数创建了一个窗口它工作正常..现在我想创建一个子窗口...父窗口应该控制子窗口...关于此的任何帮助示例代码。提前致谢 最佳答案 粗略地说,在父级的处理程序中,您希望在其中创建子级,调用CreateWindow,将父级的窗口作为hwndParent传递-可能,您还想为子项设置某些样式,例如WS_CHILD。然后,您与子窗口的交互取决于您创建的窗口的类型。某些窗口(例如按钮)被设计为用作子窗口,因此它们会发送大量通知消息,因此您可以设置父窗口来监

c++ - 如何接收来自 Windows MessageBox 的反馈?

我知道可以用Windows做这样的事情:MessageBox(hWnd,"Yes,No,orCancel?","YNCB_YESNOCANCEL);但是我如何对用户按下的内容使用react(比如如果他们单击"is"则关闭窗口)? 最佳答案 MessageBox将返回一个整数,指的是按下的按钮。来自上一个链接:ReturnValueIDABORTAbortbuttonwasselected.IDCANCELCancelbuttonwasselected.IDCONTINUEContinuebuttonwasselected.IDIGN

c++ - 如何在 C++ 中更改窗口大小?

您好,我必须在C++中运行一个程序,我想确保在执行该程序时,它会以特定的大小/尺寸打开控制台,以便我的程序中的显示正确。我需要帮助,因为我不知道该怎么做。我正在使用DevC++5.42(Orwell)。我尝试使用#include#includeusingnamespacestd;SetWindowPos(hwnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE|SWP_SHOWWINDOW);intmain(){cout遇到错误[Error]expectedconstructor,destructor,ortypeconversionbefore'

c++ - 是否可以禁止取得文件的所有权?

我很好奇是否有办法阻止用户(包括属于admin组的用户)取得文件的所有权?我最初是通过在LocalSystem帐户下运行的服务创建此类文件的。然后我将该文件的DACL设置为D:(A;OICI;GA;;;SY)只让SYSTEM帐户拥有完全访问权限,并将myservice设置为所有者:DWORDdwRes=::SetNamedSecurityInfo(strDataFilePath,SE_FILE_OBJECT,OWNER_SECURITY_INFORMATION,//changeonlytheobject'sownerpMyServiceUserSid,//UserSIDformyser

c++ - SHBrowseForFolder 返回时如何重新获得焦点

我目前正在使用SHBrowseForFolder()打开浏览文件夹窗口,但是当取消/确定被按下。我读到我应该在对话框关闭之前重新启用我的主窗口,但那到底在哪里?有什么想法吗?voidbuttonPush(HWNDhWnd){EnableWindow(hWnd,FALSE);BROWSEINFObi={0};TCHARszDir[MAX_PATH]={0};LPITEMIDLISTpid=NULL;LPMALLOCpMalloc=NULL;if(SUCCEEDED(SHGetMalloc(&pMalloc))){ZeroMemory(&bi,sizeof(bi));bi.hwndOwne