VS ATL的exe模板无法生成dll的解决方案
问题
报错信息:
1 |
|
提示信息:
1 |
|
操作过程
graph TD
打开VS-->新建ATL项目
新建ATL项目-->选择生成.exe项目
选择生成.exe项目-->产生ATLProject1和ATLProject1PS两个工程
产生ATLProject1和ATLProject1PS两个工程-->运行ATLProject1PS工程
运行ATLProject1PS工程-->提示报错
错误原因
看似是说没有留接口,但是反过来仔细一想,VS 自带的模板应该不会这么麻烦,应该会自动生成才对,因此错误并不可能是接口问题。
再注意提示信息if exist
,这很明显就是一个生成前事件,因此如果修改dlldata.c
文件位置就应该能解决问题。
代理/存根(PS)项目有一个预构建事件,用于检查dlldata.c
的存在。但是,由于此文件与代理/存根项目.vcxproj
不在同一文件夹中,因此找不到该文件。更改所有配置/平台的 Pre-Build 事件,以便它在父文件夹中查找dlldata.c
其次在链接代理/存根项目时,由于相同的原因,链接器将找不到ATLProject1ps.def
,因为它位于ATLProject1
文件夹中。
解决方法
setp one
修改预构建事件
1 |
|
setp two
修改模块定义文件的位置
graph TB
A(项目属性)-->B(链接器)
B-->C(输入)
C-->D(模块定义文件)
D-->E(输入../ATLProject1/ATLProject1PS.def)
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!