18得票1回答
如何用C++编写一个Shell扩展?

这似乎是一个常见的问题,但在搜索了一番后,我没有真正找到我的答案。这里有一篇文章: http://www.codeproject.com/KB/shell/shellextguide1.aspx 但它是针对非常旧版本的Visual Studio。我正在使用VS 2008,因此指示和界面似乎...

17得票7回答
无法打开文件atls.lib

我在硬盘上有 atls.lib 文件,但是我无法将其链接到我的 Visual Studio 项目中。我知道 atls.lib 是一个 ATL 特定的库文件,而且我已经拥有了所有 ATL 的文件/头文件/库文件,但是我仍然无法将它们链接起来。 LINK: 致命错误 LNK1104:无法打开文件...

16得票1回答
在C++中托管Silverlight

我有些力不从心,希望能得到一些关于如何处理的建议。 基本上我想要做的是在我的C++应用程序中渲染和控制Silverlight。我想要的是像这样的东西: class silverlight_host { public: // Prio 1 silverlight...

15得票1回答
Out-of-proc COM服务器卡住了。

我正在使用 out-of-proc COM 服务器 (COM 单例 "Engine",使用 DECLARE_CLASSFACTORY_SINGLETON 实现),它在 STA 下工作 (CComSingleThreadModel、_ATL_APARTMENT_THREADED)。COM 服务器...

13得票2回答
_MERGE_PROXYSTUB有什么作用?

我使用VS2008生成了一个ATL COM对象,代码中包含一个名为_MERGE_PROXYSTUB的定义(因为我最初运行向导时选择了“合并代理/存根”选项)。 代理/存根有什么用?如果我不选择合并选项,那么我会得到一个单独的MyControlPS.DLL - 什么情况下会使用它? 值得注意...

13得票1回答
oaidl.idl和ocidl.idl是用于什么目的?

默认的ATL简单对象在其IDL文件顶部包含以下内容:import "oaidl.idl"; import "ocidl.idl"; 这些文件是做什么的?我怎样知道何时需要导入它们?有没有文档描述这两个文件中定义了什么东西?我不知道“oa”和“oc”代表什么,而且文件本身没有任何有用的注释。

13得票4回答
使用Visual C++ Express 2010时出现atlbase.h未找到的错误

我尝试将我的项目从之前的Windows XP版本迁移到Windows 7上的Visual C++ Express 2010。我遇到了许多错误,指出无法找到atlbase.h。这不是一个问题,但我想为其他人记录下我的解决方法。 将以下PlatformSDK文件从我的先前安装中复制并放置在我的W...

13得票2回答
Windows 10 64位系统中ATL子类化导致随机崩溃

首先,从2017年3月1日起,这是由Microsoft确认的一个错误。请阅读末尾的评论。 简要描述: 在使用MFC、ATL的大型应用程序中,我经常遇到随机崩溃问题。在所有这些情况下,在使用ATL子类化为窗口之后,在执行简单动作(移动、调整大小、设置焦点、绘制等)时,我会在随机执行地址上发...

12得票1回答
.RGS文件是如何工作的?

在.rgs文件中,有一些注册表信息,我想知道这些信息是如何被添加到注册表中的? 我有一个名为AAA的项目,它会生成AAA.DLL文件,还有一个包含注册表信息的xxx.rgs文件。当AAA.DLL构建完成后,它将部署到另一台机器B上,因此我不知道如何将注册表信息添加到机器B上,我需要使用reg...

12得票3回答
如何将本地CComSafeArray返回到LPSAFEARRAY输出参数?

我有一个COM函数,应该通过LPSAFEARRAY*输出参数返回一个SafeArray。 该函数使用ATL的CComSafeArray模板类创建SafeArray。 我的天真实现使用CComSafeArray<T>::Detach()来将所有权从局部变量移动到输出参数:void f...