问题标签 [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.

0 投票
1 回答
1197 浏览

visual-studio-2010 - WTL 8.1 和 Visual Studio 2010 高级版

我对 VS 2010 (Premium) 有一个奇怪的问题。

  • 刚刚重新安装了
  • 添加了 WTL 库文件
  • 安装了 WTL 向导
  • 通过 WTL 向导创建了一个“对话”项目
  • 成功编译并运行骨架
  • 在对话框中添加了一个按钮
  • 现在编译失败,抱怨未定义的符号(按钮 IDC_xxx)
  • 关闭预编译头文件
  • 清理解决方案,重新编译并成功运行
  • 为按钮添加了“onClick”处理程序(只需双击按钮,没有添加代码)
  • 编译失败抱怨CUpdateUI未定义
  • 清理,重新分析解决方案等并不能解决问题

如果我手动插入#include's (例如atlframe.hfor CUpdateUI),我可以让它工作,但这违背了使用 VS2010 的目的!

真正让我烦恼的是我没有触及任何一行代码,一切都是通过 VS 完成的,我希望它应该注意一致性!

是我的错吗?WTL 故障?VS 故障?关于如何解决这个问题的任何建议?

0 投票
1 回答
134 浏览

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 文件!

我在这里错过了什么吗?我需要做什么才能编译它?

0 投票
1 回答
200 浏览

c++ - C++ MFC - 在 MFC DLL 和 WTL exe 之间共享数据?

我有一个 MFC 项目,它提供了用于操作复杂数据结构的 GUI 界面(我们称之为 ComplicatedClass)。我有一个 WTL 项目需要大量使用这个类。我希望能够只管理此类的一个实例,并且不希望每个项目都有自己的 ComplicatedClass 副本。

如果我希望这些项目共享此类的一个实例,我将如何以安全可靠的方式进行此操作?对我来说,唯一的选择似乎是基本上拥有该类的两份副本(一份由 MFC 项目管理,一份由 WTL 方管理)。

0 投票
1 回答
407 浏览

c++ - 当用户取消时隐藏 CDialogImpl 对话框

使用CDialogImpl派生类作为基于对话框的 WTL/ATL 应用程序,我想在用户单击右上角的“X”按钮(或按下EscAlt+ F4)时隐藏主窗口。

当前,“X”关闭对话框并结束应用程序。

在此处输入图像描述

我想改变这种行为,只隐藏对话框而不是关闭它。这可能吗?

0 投票
1 回答
775 浏览

c++ - WTL vista/7 原生外观中的 CreateSimpleReBar

在 WTL 中使用 CreateSimpleReBar 时,主菜单栏在鼠标悬停时具有这种蓝色,而不是原生 vista/7 圆形和透明形状。同样出于某种原因,菜单栏似乎比通常的本地菜单栏高。

CreateSimpleReBar 是自己绘制菜单还是我遗漏了什么?

http://imageshack.us/photo/my-images/259/wtlmainmenu.png/

0 投票
1 回答
1785 浏览

c++ - 如何在 ATL/WTL 对话框上注册自定义控件?

我已经派生了一个自定义控件ATL::CWindowImpl<CMyCustomControl>并声明了DECLARE_WND_CLASS(_T("CMyCustomControl")).

我还制作了一个带有类名的自定义控件的对话框资源CMyCustomControl

如何正确注册控件以便在对话框中显示它?

0 投票
1 回答
1304 浏览

visual-studio-2008 - ATL 链接警告

当我在 Visual Studio 2008 SP1 中使用 ATL 标头创建一个新的 Win32 项目(Windows 应用程序)时,仅包含<atlbase.h>给我这个警告:

当我还包含<atlapp.h>来自 WTL 时,我会收到以下额外警告:

解决这些警告的正确方法是什么?


编辑:

我刚刚发现这些正在发生,因为我已将 Visual Studio 2008 切换为将 Visual C++ 2010编译器与 2008一起使用。如果有人知道如何解决这个问题,不是切换回旧的编译器,那么请发帖。:)

0 投票
2 回答
1211 浏览

c++ - C++ WTL8.1 如何在带有消息循环的新线程中创建一个窗口?

我看到这个问了很多方法,但从未见过实际工作的代码片段。

毫无疑问,我尝试了用新窗口和消息循环创建新线程的天真尝试。我有一个必须打开一个窗口并处理其消息的函数,并且必须在可以从没有现有消息循环(也没有其他窗口)或通常的 mfc 消息循环或 WTL 消息循环的应用程序调用的环境中运行。我看到了一些关于 AddMessageLoop 和 Modules 的东西?但它似乎是针对主要应用程序的。无论如何,那里可能有也可能没有 WTL 模块。需要一个带有基本消息循环的独立窗口。传入一个窗口尚未打开的 WTL 类,因此窗口在与循环相同的线程中打开。类对象是否也必须在新线程中创建?

0 投票
1 回答
84 浏览

c++ - 如何获取模板化 WTL 类对象 C++ 的地址

我继承了一些 C++ 代码,这让我很困惑。

有一个像这样声明的类。

像这样的实例

得到这个编译错误

虽然 CIE 被声明为 CIENavigator,但它认为 &CIE 的类型是 IWebBrowser2 **

如果我像这样强制演员:

它编译,但指针确实是错误的指针。

我注意到类名出现在自身的声明中,但我不知道它的意义是什么。我不喜欢类模板。

如何获得正确的 CIENavigator 对象 (CIE) 地址?

0 投票
4 回答
1057 浏览

c++ - 为什么 *everything* 在 ATL/WTL 中使用模板基类?

我在理解 ATL/WTL 代码中模板的用途时遇到了很多麻烦。

当您查看 WTL 时,您会看到如下代码:

为什么CEditT用模板基类定义?

换句话说,在什么情况下会CEditT<T>实例化 where Tis not CWindow