当前位置:首页 > c++ > 正文内容

VC的ATL工程向导同时生成一个PS工程是做什么的?可以不要吗?

xuwenyan2年前 (2021-04-08)c++399

例如,我用VC2015的工程向导新建一个ATL的工程名字叫myAtl,那么VC会同时给我生成一个叫做myAtlPS的工程。这个myAtlPS工程是做什么的?什么情况下可以不需要它?什么情况下它又是必须存在的?

PS工程是什么?可以不要吗?

这个PS工程叫做代理与存根(proxy and stub),按照众多网友的说法,当你开发的组件需要用到代理/存根(即IPC(LPC+RPC)),就需要该工程,否则此工程无用。这个代理的作用是在不同的进程之间传递接口指针用的,比如:你在A客户端使用了TestCom这个com组件,但是你又想在B客户端再次引用你在A客户端得到的接口指针。那么就需要代理访问,除此之外。不需要这个选项。

网友提供的方案

许多网友说如果不需要的话在创建工程的时候可以选择不需要代理与存根,不过本人在建工工程的时候实在是没有找到哪里有这样的选项,知道的朋友如果可以的话也可以邮件告诉我,非常感谢。

个人方案

虽然我在创建时候没有找到取消的选项,但是按照朋友的经验,不需要的话创建完工程后直接把PS工程删除即可。还有一种方法就是在创建工程的时候有一个允许合并存代理与存根工程的选项勾上即可,这样就不会在视觉上多出一个PS工程,操作如下图:



当然这种方法只是视觉上少了PS工程而已,代码合并到了atl工程中,如果真的不需要的PS工程的话,还是建议创建工程之后删除PS工程比较靠谱。

    文章作者:xuwenyan
    版权声明:本文为本站原创文章,转载请注明出处,非常感谢,如版权漏申明或您觉得任何有异议的地方欢迎与本站取得联系。

    扫描二维码推送至手机访问。

    版权声明:本文由艺文笔记发布,如需转载请注明出处。

    本文链接:https://www.xuwenyan.com/archives/1649

    分享给朋友:

    “VC的ATL工程向导同时生成一个PS工程是做什么的?可以不要吗?” 的相关文章

    vs(vs2015)拖动或停靠窗口崩溃的解决方法

    vs(vs2015)拖动或停靠窗口崩溃的解决方法

    使用vs拖动窗口后想要停靠某一个区域时,ide会崩溃重启,而且会反复这样,拖动布局功能基本丧失,使用起来非常不爽。解决办法如下: vs2019(visual studio 2019) 如果vs版本是2019,那么直接升级vs即可解决问题。 vs2015(visual studio...

    C++如何获取控制台程序的输出内容?

    C++如何获取控制台程序的输出内容?

    很多工具程序(如ffmpeg)的进度显示往往都是以控制台字符显示的方法,我们可能需要调用这种控制台工具去完成工作,但同时又希望以友好的ui界面去显示当前的工作状态(如进度)。此时我们能想到的就是运行控制台程序,然后以某种方式去获取到控制台程序的输出,然后转换到我们的ui界面上去显示。 有多种...

    使用GDI、MFC_GDI、GDI+绘制数组RGBA序列

    使用GDI、MFC_GDI、GDI+绘制数组RGBA序列

    学习ffmpeg时遇到一个问题,ffmpeg解码出RGB颜色后怎么绘制到屏幕上,于是将GDI、MFC_GDI、GDI+等方式都记录一下 1:注意按windows的要求,R、G、B、A顺序要调整为B、G、R、A 。 2:GDI不支持透明通道A,透明通道A的值读进去以后没有作用。想要支持透...

    ATL实现windows右键菜单扩展(ContextMenu)

    ATL实现windows右键菜单扩展(ContextMenu)

    右键菜单,即用户右击shell对象时弹出的上下文菜单(context menu)。本文记录了如何创建右键菜单的基本过程,跟着步骤一步一步来,即可创建出一个右键菜单工程。第一步,新建一个ATL工程Visual Studio—>新建项目—>ATL—>使用默认配置(一直按下一步即可)。注...

    C++ 获取进程所在目录(进程全路径)

    C++ 获取进程所在目录(进程全路径)

    打开windows任务管理器,会看到很多的进程在运行,随机挑选一个,如何通过c++代码获取某一个进程的所在全路径呢?这也是在windows软件开发中经常遇到的需求。通过进程名获取进程全路径由于可能很多进程叫同一个名字,所以获得的结果也有可能是多个#include <windows.h...

    c++函数模板参数类型限定

    c++函数模板参数类型限定

    函数模板函数模板可以实现对不同数据类型做统一操作,比如比较两个数据的大小:template<typename T> bool compare(T& a,T& b) {   return a...