草庐IT

mfc-feature-pack

全部标签

c++ - 使用省略号的回退函数 : can we force the size of the parameters pack?

考虑以下代码:#include#includestructS{templateautof(A&&...args)->decltype(std::declval().f(std::forward(args)...),void()){std::coutvoidf(...){std::cout(42);//->hasf(int)s.f(42);//->hasnotf(int)//oopss.f();//->hasnotf(int)}如示例所示,对f的第三次调用工作正常,即使参数数量错误,因为对于回退函数来说它根本没有错.当以这种方式涉及省略号时,有没有办法强制参数的数量?我的意思是,我可以在

c++ - gcc 与 clang : expanding a captured parameter pack twice

考虑这个代码片段:intmain(){autofirst=[&](auto...one){autofaulty=[&](){[[maybe_unused]]autoi=(one+...);return(one+...);};faulty();};first(1);}另见ongodbolt.似乎当我尝试在内部lambda中将隐式捕获的参数包one扩展两次时,gcc会提示,但clang不会。请注意,当我明确捕获时,例如[&one...],gcc不再提示。对我来说,这看起来像是一个gcc错误,但我想得到比我更有经验的人的一些确认,因为我已经在带有可变捕获的clang中看到(不同的)错误行为h

c++ - CMFCToolTipCtrl 或 CTooltipManager 示例?

有没有人尝试过使用这些新的VS2008MFC类?我似乎无法在任何地方找到任何例子。即使是VS2008示例(1)也没有提到这些类。(他们使用CToolTip。)(1)更新:我的错误。我已经下载了non-SP1samples.我看到SP1samples有专门针对2008FeaturePack的示例,包括答案中提到的DlgToolTips和ToolTipDemo项目。不幸的是,它们没有解决doc/view或CTooltipManager。具体来说,我试图在标准MFCView/文档应用程序中显示工具提示,其中有两个并排的View,其父级为CSplitterWnd。在SP1之前,我有这个工作,我

c++ - 从 MFC 应用程序连接到 SQL Server Compact Edition (.sdf)

我正在VisualStudio2008中构建一个对纹理进行分类的MFC应用程序,我需要某种轻量级数据库来保存特征(只是一些double和字符串),这些特征可以是:在不同的计算机上随身携带该应用程序能够从应用程序对其执行查询(搜索、更新、插入等)目前我正在研究SQLServerCompactEdition,因为它很容易从VisualStudio创建(我也只需要一个表)。但是我很难从C++连接和更新数据库。这是我在MSDN上找到的关于C++和SQLCE的内容:public:voidcreateSqlCeConnection(){SqlCeConnection*myConnection=ne

c++ - 在 MFC 中更改按钮的光标

我正在尝试更改MFC对话框中按钮的光标。我用过BOOLCStartDlg::OnSetCursor(CWnd*pWnd,UINTnHitTest,UINTmessage){if(m_changeCursor){::SetCursor(AfxGetApp()->LoadStandardCursor(IDC_HAND));returnTRUE;}returnCDialog::OnSetCursor(pWnd,nHitTest,message);}但它正在改变整个对话框的光标。m_button是CButton类的对象。请告诉我如何更改按钮的光标。我也尝试过但不起作用m_button1.Set

c++ - 在模态对话框处于事件状态时隐藏主 MFC 窗口?

我有一个nativeC++MFC应用程序。它有一个基于CWnd的主窗口,用户操作可以创建一个模态对话框。当对话框处于事件状态时,我希望主窗口消失,对话框可见,并且主窗口的图标保留在任务栏中。我怎样才能做到这一点?如果我隐藏主窗口(ShowWindow(SW_HIDE)),任务栏图标就会消失。如果我最小化主窗口(SW_MINIMIZE),图标仍然存在。但是,由于该对话框归主窗口所有,因此这也会隐藏该对话框。创建对话框后,单击任务栏图标可使对话框可见。当然,我不想要求用户这样做。即使我在对话框的OnInit处理程序中插入ShowWindow(SW_SHOW),对话框仍然不可见。不过,Spy

c++ - MFC 绘制的元素在 30-60 分钟后发生变化

我有一个带有完全自定义绘制UI的应用程序(即只是一堆带有文本的填充框)。大约运行30-60分钟后,UI元素会自发发生变化。例如,白线(框边框)消失,文本调整大小等。我已经链接到其中一个屏幕的一些前后图像。这表明所有的白线都消失了。其他屏幕显示文本大小发生显着变化。之前:http://s21.postimg.org/cogqodson/BEFORE.png之后:http://s24.postimg.org/7skx21sid/AFTER.png此项目是使用MFC在MSVisualC++2010中编写的,并在Windows7Pro上运行。这是我的OnPaint()代码:voidCMainW

c++ - 关于 __attribute__((__packed__)) 的 c++ 编译错误还有哪些其他方法?

当我编译以下代码时:#include#includestructTupleHeader{timevaltuple_stime;//34..37}__attribute__((__packed__));voidset_value(timeval&stime){}intmain(){TupleHeadertuple;set_value(tuple.tuple_stime);return0;}我得到了g++-3.4.2下的错误和g++-4.8.3:attribute-1.cc:Infunction`intmain()':attribute-1.cc:13:error:cannotbindpa

c++ - clang compaining about __attribute__((packed)) 即使结构需要打包

我有一个结构,需要打包(不打包大小为20个字节,但我需要16个才能读/写它)。当我添加packed属性时,我得到了结构的所有成员的error:packedattributeisunnecessaryfor警告。当使用pragma消除错误时,代码可以正常编译并且结构的大小为16,但是如果我删除pragma,它就会失败(因为我使用的是-Werror)。clang只是错误地发出了这个警告还是我做错了什么?#includetypedefstruct__attribute__((packed)){uint16_twFormatTag;uint16_tnChannels;uint32_tnSamp

c++ - 将 MFC/ATL 代码转换为 Windows 窗体应用程序

我有大量的MFC/ATL程序代码,想在Windows窗体应用程序中使用。“转换”此代码的最简单方法是什么,以便它在启用/clr的情况下进行编译并找到基本类,例如CObject、CString、CFile和模板? 最佳答案 不需要做太多的“转换”,您只需启用/clr并编译即可。会有构建错误,但数量不会很大。这是一个不应该轻易做出的决定。不。一旦你越过/clr阈值,你就牺牲了一些东西:构建性能变得更差,尤其是链接。您不能增量链接C++/clr项目。一个额外的加载层被添加到您的.Exe或.Dll中。您必须注意初始化的顺序,尤其是静态的。与