我从迁移到VC6 VS2008一个ATLCOM项目。 我的问题是,我该如何建立PS dllon VS 2008?
在VS2008新ATL项目有它建立了PS DLL一个单独的PS项目。 但从VC6迁移并没有创造这个项目。
我试图调用上的PS MK文件NMAKE但是,给出了一个重新定义错误存在于我们两个源文件,以及一个自动包含在Windows头文件枚举类型。 在该溶液中,我们通过定义固定此WIN32_LEAN_AND_MEAN
预处理器不包括不必要的头文件。 我所能做的,而使用NMAKE一样吗?
是否有创建PS的dll任何其他方式?
伊兰的建议似乎是顺理成章,但我没能找到一些他谈论的项目。 于是,我尝试了不同的方法。
我在VS 2008这与正常的ATL项目一起自动创建一个PS项目创建一个空的ATL(服务器)项目。
我复制了PS项目到我的项目文件夹中的文件vcproj,并更名为它myprojectname ps.vcproj。
然后我打开我的水溶液,并添加新复制的项目给它。 我改名为项目(在VS 2008),以myprojectname PS和删除所有已经包含在它的文件。
接下来,我包括我的_i.c,_p.c,dlldata.c和.def文件到项目中。 在所链接>输入>模块定义文件中的设置,我将我的DEF文件名。
而已! 工作就像一个魅力。
它已经有一段时间,因为我所做的,而且当时我还没有任何最新的指令,但是回首项目现在我会试着重建过程:
- 请为PS一个新的空DLL项目。 无需MFC或ATL。
- 将下列文件添加到项目:PROJ _h.h, 凸出 _i.c, 凸出 _p.c, 凸出的.def,dlldata.c
- 在项目设置,添加以下库到附加的依赖:rpcndr.lib,rpcns4.lib,rpcrt4.lib
- 在项目设置,指定DEF文件为您的模块定义文件。
- 在项目设置中,设置“生成存根代理”为是。
- 在项目设置,设置TLB文件服务器项目产生的一个
这就是我可以从postmorteming我的一个项目得到。 我可能会跳过一些步骤,并有可能是一个更好的方式来做到这一点。 OTOH,我还没有与生成的PS有任何问题,你也许能为你去填补国内空白。 如果你试试这个,发现任何遗漏,请添加以供将来参考意见。