问题标签 [atl]
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 - 为什么从 Visual Studio 2008 中删除了在新 ATL 项目中使用属性的选项?
这是来自 MSDN 评论的文本:“根据 ATL Internals (2ed) 一书,不推荐使用属性,不应在新的 ATL 项目中使用。”
但为什么?!!
c++ - Internet Explorer 在什么情况下无法正确卸载 ActiveX 控件?
我正在编写的 ActiveX 控件遇到了一个令人困惑的问题 - 有时,Internet Explorer 似乎无法在进程关闭时正确卸载控件。这导致不调用控件实例的析构函数。
该控件是用 C++ 编写的,使用 ATL 并使用 Visual Studio 2005 编译。当用户浏览远离嵌入控件的页面时,始终调用控件实例的析构函数 - 只有在关闭浏览器时才会出现问题。
当我在调试器下运行 IE 时,我没有看到任何异常 - 调试器没有捕获任何异常、访问冲突或断言失败,但问题仍然存在 - 我可以在控件的析构函数中设置断点,它永远不会当我关闭浏览器时点击。
此外,当我加载一个嵌入多个控件实例的简单 HTML 页面时,我看不到问题。该问题仅在从我们的 Web 应用程序实例化控件时才会出现,该应用程序将标签动态插入到网页中 - 当然,不知道是什么导致了这个问题,我不知道这部分信息是否相关,但它似乎表明这可能是一个 IE 问题,因为它依赖于数据。
当我在调试器下运行简单的测试用例时,我可以在控件的析构函数中设置一个断点,并且每次都会命中它。我相信这排除了控件本身的问题(例如,会阻止调用析构函数的错误,例如接口泄漏。)
我使用 IE 6 进行了大部分测试,但我也看到 IE 7 上也出现了问题。我还没有测试过 IE 8。
我现在的工作假设是动态 HTML 代码中的某些内容会导致浏览器泄漏 ActiveX 控件上的界面。到目前为止,我还没有能够在应用程序之外生成一个好的测试用例来重现这个,而且应用程序有点太大而无法制作一个好的测试用例。
我希望有人能够深入了解可能导致这种行为的 IE 错误。顺便说一句,下面提供的答案太笼统了——我正在寻找一组已知会导致这种情况的特定情况。肯定有人以前见过这个。
c++ - 如何将 WTL 和 ATL 添加到 Visual Studio C++ Express 2008
我开始在家里使用 Visual Studio C++ Express 2008,但里面没有 ATL。
如何将 ATL 添加到 Visual Studio C++ Express 2008?
c++ - 在 C++ 中触发 COM 事件 - 同步还是异步?
我有一个使用 MS ATL 库编写的 ActiveX 控件,我正在通过pDispatch->Invoke(..., DISPATCH_METHOD)
. 该控件将由 .NET 客户端使用,我的问题是 - 事件的触发是同步调用还是异步调用?我担心的是,如果是同步的,处理事件的应用程序可能会导致性能问题,除非它立即返回。
c++ - 如何编写一个迭代 CAtlMap 的 for 循环,有选择地删除元素?
我正在尝试在没有太多特殊情况代码的情况下执行以下操作来处理无效的 POSITION 等:
填空的最佳方法是什么?
c++ - ATL/WTL 是否仍需要使用全局 _Module 变量?
我刚刚开始一个新的 ATL/WTL 项目,我想知道是否仍然需要全局 _Module 变量?
几年前,当我开始使用 WTL 时,需要(至少对于 ATL 3.0)定义一个全局变量,例如:
让 ATL 正常工作。但最近我在某处读到这可能不再需要(但向导生成的代码仍然使用它)。我还通过 Visual C++ 包含目录进行了搜索,它只在几个地方找到了 _Module - 最值得注意的是 ATL COM 注册表的东西。
那么这些天我还需要定义一个全局变量来使用 ATL 吗?
c++ - Win2K/XP中检查目录写权限的代码
问候!
我正在尝试使用 C++ 从 Windows MFC/ATL 程序中检查目录写权限。我的第一个猜测是使用 C 标准的 _access 函数,例如:
但显然在 Windows 2000 和 XP 上,_access 无法确定目录权限。(即,当您在资源管理器中右键单击目录时,属性对话框中的安全选项卡) 那么,是否有一种优雅的方法可以使用任何 Windows C++ 库来确定 Windows 2000/XP 中目录的写入权限?如果是这样,怎么做?
谢谢
埃文
c++ - 为什么在 ATL 的资源文件中找不到控件 ID?
由于我需要根据我的应用程序中的焦点控件进行一些检查,因此我得到的焦点控件 ID 如下所示:
我得到了一致的 ID,但我在资源文件中找不到它们!我可以依靠我获得的 ID 还是什么?
任何帮助将不胜感激。
c++ - 从 ATL C++ 客户端调用 Axis2 Web 服务
我在 Tomcat5.5 上使用 Axis2 发布了一个简单的 POJO Web 服务,我尝试使用 ATL C++ 客户端使用它,但它失败了。对 C# 客户端执行相同的操作。问题是 ATL 客户端发送的肥皂体看起来像
注意中间的无效元素。我怀疑它与 UTF-8 有关,因为 C# 发送的标头
而 ATL 客户端则没有。此外,当我查看一些 ATL SOAP 内部时,我注意到一个结构有两个成员:szName 和 szwName。第一个是空的并产生元素,第二个有一个有效的(?)名称 testResponse(我调用的方法称为“test”)。
需要关于从这里去哪里的建议?
更多详细信息:来自 ATL 客户端的完整消息:
来自 Axis2 的响应:
哦,这是来自 C# 客户端的好请求:
在 C# 的情况下,soap:body 是空白的。
.net - 如何使用该 COM 对象将 C++/COM 库中实现的 DIB 放入 .NET 客户端
我们有一个用 C++/ATL 实现的 COM 对象,其中包括一个返回 DIB 的方法。我们还在编写一个将使用该 COM 对象的 .NET 应用程序。由于我们同时编写了两者,我们可以自由决定如何最好地从 COM 对象返回此 DIB。澄清一下,最好将本机 Windows 句柄返回到 DIB 或字节数组,还是有其他方法可以轻松地将 Windows DIB 转换为 .NET Image 对象?而且,与那个问题相关:一旦我得到了这个返回的 DIB,我怎么能把它变成一个 .NET Image 对象?