What is the ($Foo)PS project in my $Foo ATL solution for?

后端 未结 3 1869
被撕碎了的回忆
被撕碎了的回忆 2021-02-01 16:20

Creating an ATL project in MSVC seems to create not one but two projects; the latter named the same as the former but with PS appended to its name. What is the purpose of this

3条回答
  •  不思量自难忘°
    2021-02-01 17:15

    As @ebutusov said, *PS project contains implementations for Proxy and Stub. They are not standard, instead they are generated by MIDL for interfaces exported from your ATL server. These interfaces are declared in the *.IDL file. The ouput of the project is DLL. You may read this article to get more details.

    You may remove PS project from the solution in case if you do not define any custom interfaces in you *.IDL file or if you define only interfaces which have dual and oleautomation modifiers. In that case a standard typelib marshaller will be used.

    In order to be able to make use of the standard typelib marshaller, one has to register a typelibrary (which is done automatically since you are using ATL)

提交回复
热议问题