大厦代理/存根DLL在VS 2008中(Building Proxy/Stub dll in VS

2019-09-17 01:52发布

我从迁移到VC6 VS2008一个ATLCOM项目。 我的问题是,我该如何建立PS dllon VS 2008?

在VS2008新ATL项目有它建立了PS DLL一个单独的PS项目。 但从VC6迁移并没有创造这个项目。

我试图调用上的PS MK文件NMAKE但是,给出了一个重新定义错误存在于我们两个源文件,以及一个自动包含在Windows头文件枚举类型。 在该溶液中,我们通过定义固定此WIN32_LEAN_AND_MEAN预处理器不包括不必要的头文件。 我所能做的,而使用NMAKE一样吗?

是否有创建PS的dll任何其他方式?

Answer 1:

伊兰的建议似乎是顺理成章,但我没能找到一些他谈论的项目。 于是,我尝试了不同的方法。

我在VS 2008这与正常的ATL项目一起自动创建一个PS项目创建一个空的ATL(服务器)项目。

我复制了PS项目到我的项目文件夹中的文件vcproj,并更名为它myprojectname ps.vcproj。

然后我打开我的水溶液,并添加新复制的项目给它。 我改名为项目(在VS 2008),以myprojectname PS和删除所有已经包含在它的文件。

接下来,我包括我的_i.c,_p.c,dlldata.c.def文件到项目中。 在所链接>输入>模块定义文件中的设置,我将我的DEF文件名。

而已! 工作就像一个魅力。



Answer 2:

它已经有一段时间,因为我所做的,而且当时我还没有任何最新的指令,但是回首项目现在我会试着重建过程:

  1. 请为PS一个新的空DLL项目。 无需MFC或ATL。
  2. 将下列文件添加到项目:PROJ _h.h, 凸出 _i.c, 凸出 _p.c, 凸出的.def,dlldata.c
  3. 在项目设置,添加以下库到附加的依赖:rpcndr.lib,rpcns4.lib,rpcrt4.lib
  4. 在项目设置,指定DEF文件为您的模块定义文件。
  5. 在项目设置中,设置“生成存根代理”为是。
  6. 在项目设置,设置TLB文件服务器项目产生的一个

这就是我可以从postmorteming我的一个项目得到。 我可能会跳过一些步骤,并有可能是一个更好的方式来做到这一点。 OTOH,我还没有与生成的PS有任何问题,你也许能为你去填补国内空白。 如果你试试这个,发现任何遗漏,请添加以供将来参考意见。



文章来源: Building Proxy/Stub dll in VS 2008