问题标签 [wtl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-studio-2010 - WTL 8.1 和 Visual Studio 2010 高级版
我对 VS 2010 (Premium) 有一个奇怪的问题。
- 刚刚重新安装了
- 添加了 WTL 库文件
- 安装了 WTL 向导
- 通过 WTL 向导创建了一个“对话”项目
- 成功编译并运行骨架
- 在对话框中添加了一个按钮
- 现在编译失败,抱怨未定义的符号(按钮 IDC_xxx)
- 关闭预编译头文件
- 清理解决方案,重新编译并成功运行
- 为按钮添加了“onClick”处理程序(只需双击按钮,没有添加代码)
- 编译失败抱怨
CUpdateUI
未定义 - 清理,重新分析解决方案等并不能解决问题
如果我手动插入#include
's (例如atlframe.h
for CUpdateUI
),我可以让它工作,但这违背了使用 VS2010 的目的!
真正让我烦恼的是我没有触及任何一行代码,一切都是通过 VS 完成的,我希望它应该注意一致性!
是我的错吗?WTL 故障?VS 故障?关于如何解决这个问题的任何建议?
atl - 如果不修改 Microsoft 标头就没有办法解决这个问题吗?
试图在 VC++ 2010 中编译这个旧的 VC++ 6.0 程序。这个 ATL/WTL 东西给了我很多问题。我下载并链接到最新的 WTL(据我所知)wtl71。
我在 atlmisc.h 中遇到编译错误:
atlmisc.h(1159):错误 C2440:'return':无法从 'const char *' 转换为 'TCHAR *'
我已经搜索了'net,并且出现的答案是修改股票 MS atlmisc.h 文件!
我在这里错过了什么吗?我需要做什么才能编译它?
c++ - C++ MFC - 在 MFC DLL 和 WTL exe 之间共享数据?
我有一个 MFC 项目,它提供了用于操作复杂数据结构的 GUI 界面(我们称之为 ComplicatedClass)。我有一个 WTL 项目需要大量使用这个类。我希望能够只管理此类的一个实例,并且不希望每个项目都有自己的 ComplicatedClass 副本。
如果我希望这些项目共享此类的一个实例,我将如何以安全可靠的方式进行此操作?对我来说,唯一的选择似乎是基本上拥有该类的两份副本(一份由 MFC 项目管理,一份由 WTL 方管理)。
c++ - 当用户取消时隐藏 CDialogImpl 对话框
使用CDialogImpl
派生类作为基于对话框的 WTL/ATL 应用程序,我想在用户单击右上角的“X”按钮(或按下Esc或Alt+ F4)时隐藏主窗口。
当前,“X”关闭对话框并结束应用程序。
我想改变这种行为,只隐藏对话框而不是关闭它。这可能吗?
c++ - WTL vista/7 原生外观中的 CreateSimpleReBar
在 WTL 中使用 CreateSimpleReBar 时,主菜单栏在鼠标悬停时具有这种蓝色,而不是原生 vista/7 圆形和透明形状。同样出于某种原因,菜单栏似乎比通常的本地菜单栏高。
CreateSimpleReBar 是自己绘制菜单还是我遗漏了什么?
c++ - 如何在 ATL/WTL 对话框上注册自定义控件?
我已经派生了一个自定义控件ATL::CWindowImpl<CMyCustomControl>
并声明了DECLARE_WND_CLASS(_T("CMyCustomControl"))
.
我还制作了一个带有类名的自定义控件的对话框资源CMyCustomControl
。
如何正确注册控件以便在对话框中显示它?
visual-studio-2008 - ATL 链接警告
当我在 Visual Studio 2008 SP1 中使用 ATL 标头创建一个新的 Win32 项目(Windows 应用程序)时,仅包含<atlbase.h>
给我这个警告:
当我还包含<atlapp.h>
来自 WTL 时,我会收到以下额外警告:
解决这些警告的正确方法是什么?
编辑:
我刚刚发现这些正在发生,因为我已将 Visual Studio 2008 切换为将 Visual C++ 2010编译器与 2008库一起使用。如果有人知道如何解决这个问题,而不是切换回旧的编译器,那么请发帖。:)
c++ - C++ WTL8.1 如何在带有消息循环的新线程中创建一个窗口?
我看到这个问了很多方法,但从未见过实际工作的代码片段。
毫无疑问,我尝试了用新窗口和消息循环创建新线程的天真尝试。我有一个必须打开一个窗口并处理其消息的函数,并且必须在可以从没有现有消息循环(也没有其他窗口)或通常的 mfc 消息循环或 WTL 消息循环的应用程序调用的环境中运行。我看到了一些关于 AddMessageLoop 和 Modules 的东西?但它似乎是针对主要应用程序的。无论如何,那里可能有也可能没有 WTL 模块。需要一个带有基本消息循环的独立窗口。传入一个窗口尚未打开的 WTL 类,因此窗口在与循环相同的线程中打开。类对象是否也必须在新线程中创建?
c++ - 如何获取模板化 WTL 类对象 C++ 的地址
我继承了一些 C++ 代码,这让我很困惑。
有一个像这样声明的类。
像这样的实例
得到这个编译错误
虽然 CIE 被声明为 CIENavigator,但它认为 &CIE 的类型是 IWebBrowser2 **
如果我像这样强制演员:
它编译,但指针确实是错误的指针。
我注意到类名出现在自身的声明中,但我不知道它的意义是什么。我不喜欢类模板。
如何获得正确的 CIENavigator 对象 (CIE) 地址?
c++ - 为什么 *everything* 在 ATL/WTL 中使用模板基类?
我在理解 ATL/WTL 代码中模板的用途时遇到了很多麻烦。
当您查看 WTL 时,您会看到如下代码:
为什么CEditT
用模板基类定义?
换句话说,在什么情况下会CEditT<T>
实例化 where T
is not CWindow
?