我有一个从VC6迁移到VS 2008的ATL COM项目。如何在VS2008上构建PS DLL?
VS 2008中的新ATL项目有一个单独的PS项目,该项目构建PS DLL。但是从VC6迁移并没有创建此项目。
我试图在PS mk文件上调用nmake,但是对于源文件和自动包含的Windows头文件中都存在的枚举类型,它给出了重新定义错误。在解决方案中,我们通过定义WIN32_LEAN_AND_MEAN
预处理程序来解决此问题,该预处理程序排除了不必要的头文件。我可以在使用nmake时做同样的事情吗?
还有其他创建PS DLL的方法吗?
Eran的建议似乎合乎逻辑,但我无法找到他正在谈论的一些内容。所以我尝试了另一种方法。
[我在VS 2008中创建了一个空的ATL(服务器)项目。这会自动创建一个与普通atl项目一起的ps项目。
我将ps项目的vcproj文件复制到我的项目文件夹中,并将其重命名为myprojectname ps.vcproj。
然后打开解决方案,并将新复制的项目添加到其中。我将项目(在VS 2008中)重命名为myprojectname ps,并删除了其中已包含的所有文件。
下一步,我将我的_ i.c,_p.c,dlldata.c和。def文件包含到项目中。在链接器>输入>模块定义文件下的设置中,我添加了def文件名。
就是这样!像魅力一样运作。
自完成以来已经有一段时间了,即使那时我也没有任何最新的说明,但是现在回头看一下项目,我将尝试重构该过程:
这是我对我的项目进行事后检验所能得到的。我可能已经跳过了一些步骤,可能会有更好的方法来做到这一点。 OTOH,生成的PS没有任何问题,您也许可以随心所欲地填补空白。如果您尝试这样做并发现任何遗漏,请添加评论以供将来参考。