Articles of c + +

我可以创build和使用COM类而不注册它在registry中?

我需要做一个自定义的COM对象,最终会看起来类似于这个: static const GUID IID_ClientCommunicator = { 0x5219b44a, 0x874, 0x449e,{ 0x86, 0x11, 0xb7, 0x8, 0xd, 0xbf, 0xa6, 0xab } }; static const GUID CLSID_ClientCommunicator = { 0x5219b44b, 0x874, 0x449e,{ 0x86, 0x11, 0xb7, 0x8, 0xd, 0xbf, 0xa6, 0xab } }; class ATL_NO_VTABLE CClientCommunicator: public CComObjectRootEx<CComSingleThreadModel>, public CComCoClass<CClientCommunicator, &CLSID_ClientCommunicator>, public IDispatchImpl<CClientCommunicator, &IID_ClientCommunicator, 0, /*wMajor =*/ 1, /*wMinor […]

Windows的C代码的内联编译失败

在Windows XP Pro RGui中,无法编译内联C代码。 获取错误: “sh”不被识别为内部或外部命令 显然有一个configuration错误,但无法find解决方法在R文档或通过谷歌search。 一定是个简单的解决scheme! 相同的R代码在linux上工作正常:内联C编译并正确运行。

使用Gmail发送邮件

public static bool SendMail(string toList, string from, string ccList, string subject, string body) { MailMessage message = new MailMessage(); SmtpClient smtpClient = new SmtpClient(); try { MailAddress fromAddress = new MailAddress(from); message.From = fromAddress; message.To.Add(toList); if (ccList != null && ccList != string.Empty) message.CC.Add(ccList); message.Subject = subject; message.IsBodyHtml = true; message.Body = body; smtpClient.DeliveryMethod = […]

为什么BOOL在Windows中是inttypes的?

为什么不把BOOL定义为如下的enum : enum BOOL {FALSE, TRUE}; 是否有任何理由为什么BOOL必须显式指定为int (或任何其他整型)?

没有显示MFC的CMenu工具提示

我尝试使用这样的东西来设置一个CMenu项目的工具提示(如此处所述),但它只是显示在一行中,并且换行符不可见。 // read control id UINT id = menu->GetMenuItemID(1235); // modify caption and add tooltip? menu->ModifyMenu( id, MF_BYCOMMAND, id, "Click here\nThis is the tooltip for the menu item …"); 我也尝试直接在菜单项的Visual Studio资源devise器中设置标题,效果相同。 你能给我什么错误的提示吗? 我在Windows 7上使用VS2008。 任何帮助表示赞赏!

.NET:如何创build文件图标叠加

我试图在各种文件的图标上添加不同的图标覆盖(注意:并非所有文件都是某种types的文件,只是某些文件)。 如果你没有明白我的意思,我指的是像TortoiseSVN,TortoiseHG,Dropbox等这样的程序。 这可以在.NET中完成吗? 如果是这样,怎么样? 我希望这里有一个图书馆。 我发现这个CodeProject文章关于这样的东西,但它不是.NET。 提前致谢。

将XMLstring反序列化为对象错误:xml文档中存在错误(1,2)

从Windows事件查看器我可以得到以下的XML结构: <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> <System> <Provider Name="XXXXXXXXXX" Guid="{YYYYYYYY}" /> <EventID>XYZ</EventID> <Version>0</Version> <Level>L</Level> <Task>A</Task> <Opcode>0</Opcode> <Keywords>0x000xyzh</Keywords> <TimeCreated SystemTime="2012-06-28T15:44:04.997837000Z" /> <EventRecordID>153</EventRecordID> <Correlation ActivityID="{DDDDDDDDD}" /> <Execution ProcessID="199999" ThreadID="90990" /> <Channel>Microsoft-Windows-ABCDEFG/Admin</Channel> <Computer>myPC</Computer> <Security UserID="ABCABC" /> </System> <EventData> <Data Name="name1">data1</Data> <Data Name="name2">data2</Data> <Data Name="name3">data3</Data> </EventData> <RenderingInfo Culture="en-US"> <Message>some message </Message> <Level>Information</Level> <Task>XYZ</Task> <Opcode>Info</Opcode> <Channel /> <Provider /> <Keywords> <Keyword>XYZ</Keyword> </Keywords> </RenderingInfo> […]

我如何获得在Windows中的显示数量?

我想统计活动显示的数量。 对于Mac我可以使用以下内容: CGDisplayCount nDisplays; CGGetActiveDisplayList(0,0, &nDisplays); log.printf("Displays connected: %d",(int)nDisplays); 我怎样才能在Windows中实现相同的? 我已经find了EnumDisplayMonitors,但我无法解决如何使用它。

MessageBox“exception程序终止”让我的应用程序继续运行

…有点。 正如这个极端简单的例子所示, 很less(只报告过一次),碰巧我的一个应用程序崩溃了。 我想通常在发生非特定exception时终止它。 我的策略是(低级别)logging问题,然后终止。 该应用程序是一个子系统的一部分,我想(重新)启动它,如果有任何问题被发现。 它使用C ++ Builder 6构build,并在Windows(XP … 7,也是8)上运行。 我了解到, abort()很可能导致了错误信息。 该应用程序有一个GUI,这就是为什么显示一个消息框,而不是只是一个(unblocking)输出到stderr 。 只要消息框不被用户接受,我的应用程序就会明显运行 ,例如处理定时器(上面示例中的生命周期增加)或进程间消息,完全不知道问题。 阅读一些答案后, 什么是最简单的方法来使一个C ++程序崩溃? 和raise(SIGABRT)和abort()方法之间的区别 ,我尝试了以下 void mySignalHandler(int sig) { // low-level error reporting here exit(-1); } void __fastcall TForm1::FormCreate(TObject *Sender) { signal(SIGABRT, mySignalHandler); // some more initialisation here } 如果调用了abort()或raise(SIGABRT)也可以正确终止我的应用程序 。 (我也希望阻止Windows“寻求解决问题的办法”)。 这是(注册一个信号处理程序中止和调用退出)从您的angular度来看是可靠的吗? …或者至less可以build立一些东西?

替代gethostbyname

我不能使用gethostbyname来获取主机的IP地址,这是一个弃用的函数,只能在Windows的10%的时间内运行! 我找不到任何足够的资源在其他方式find一个主机的IP地址使用其他function(MSDNbuild议getaddrinfo但看起来不像我想要的。)