1. vs2019没有引用
一般编译没有出错而连接出错时就要注意了 在编译时编译器是不进行函数名检查的 而在连接是函数名错误就连接不上了 一般来说可能是main()函数拼错或printf()函数拼错 你这里就是main函数拼错了 光指出你的错误我局的没有很大意义,应该要从错误中总结经验
2. vs2019用不了
有可能是非法软件,自动屏蔽
3. vs2019头文件无法使用
解决方法如下:
1、首先在我的电脑界面搜索cvtres.exe这个可执行文件。如果您的电脑安装了vs2010,那么一般都是能够搜索出不止一个此文件的。
2、我们可以看见这里有几个路径中都有这个文件,那么我们需要做的就是将第三个路径的文件替换问第二个路径中的文件,一般是新的换旧的。
3、右键选择搜索出来的信息,选择打开文件位置,然后复制到另一个文件夹中。
4、执行完以上步骤,一般问题也就解决了。如果还是没有解决您的问题的话,可能您就需要重新安装一下此软件了。
4. vs2019没有程序集
开发:通过改进的性能,即时的代码清理和更好的搜索结果来保持专注和高效。
协作:通过Git优先的工作流程,实时编辑和调试以及在Visual Studio中直接进行代码审查,享受自然的协作。
调试:突出显示并导航到特定值,优化内存使用,并为应用程序的执行自动快照。
5. vs2019为什么没有引用
自己编写了一个头文件 ,在主函数中通过#include引用时出现了 无法打开源文件的问题,通过网上查阅,大多数人的做法是:右键项目->属性->VC++目录->包含目录->下拉剪头->编辑,在对话框中加入 $(ProjectDir)。
问题完美解决!
但是原理是啥?通过进一步研究,发现问题是自己混淆了 #include"xx.h" 和 #include<xx.h> 的用法,
#include<xx.h> 表示直接从编译器自带的函数库中寻找文件,编译器从标准库路径开始搜索.xxh
include"xx.h" 表示先从自定义的文件中找 ,如果找不到在从函数库中寻找文件,编译器从用户的工作路径开始搜索 xx.h
如果我们通过<>的方式引用自己编写的头文件,必然会出现无法找到与源文件的问题,因为我们的文件放在了用户目录下,上面的解决办法本质上是通过将会用户目录追加到编译器搜索范围内,其实通过将<>换成" "就可以解决问题了。
6. vs2019添加引用没有引用类
可以通过视图菜单调出解决方案资源管理器选项,具体操作如下:
1、通过visual studio的菜单找到并点击视图的选项菜单。
2、点击后弹出的下拉菜单,点击第一行的解决方案资源管理器选项。
3、点击后可以看到解决方案资源管理的窗口已经被打开了。
4、然后通过解决方案资源管理菜单工具菜单进行管理即可。
7. vs2019不识别include怎么办
gcc编译为汇编代码
原始C++代码:
#include "stdio.h"
class Animal {
public:
virtual void name() { printf("I'm Animal"); }
};
class Cat : public Animal {
public:
virtual void name() override { printf("I'm Cat"); }
};
void func(Animal *animal) {
animal->name();
}
int main(void) {
func(new Animal());
func(new Cat());
return 0;
}
然后编译成汇编代码:
g++ -S test.cpp -o test.s
查看:
cat test.s
部分结果:
main:
.LFB3:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
pushq %rbx
subq $8, %rsp
.cfi_offset 3, -24
你发现你完全看不懂
使用 as 展示汇编代码
另一种更好的做法是使用as:
编译成汇编代码:
g++ -S -fverbose-asm -g test.cpp -o test.s
查看:
as -alhnd test.s
现在是把代码和汇编代码对应起来了:
16:test.cpp ****
17:test.cpp **** int main(void) {
202 .loc 1 17 16
.........
212 # test.cpp:18: func(new Animal());
18:test.cpp **** func(new Animal());
213 .loc 1 18 21
214 002b BF080000 movl $8, %edi #,
214 00
215 0030 E8000000 call _Znwm #
215 00
216 0035 4889C3 movq %rax, %rbx # tmp86, _3
217 0038 48C70300 movq $0, (%rbx) #, MEM[(struct Animal *)_4]._vptr.Animal
217 000000
218 003f 4889DF movq %rbx, %rdi # _3,
219 0042 E8000000 call _ZN6AnimalC1Ev #
219 00
220 # test.cpp:18: func(new Animal());
这种情况看汇编代码比刚才更清楚一些。
使用 objdump 进行反汇编
如果直接编成机器码,需要使用objdump进行反汇编:
g++ -save-temps -fverbose-asm -g -o test test.cpp
objdump -S --disassemble test
8. vs2019无法引用类库
1、先引入dll的命名空间:usingDLL的命名空间; 2、在所用的项目上右击|添加引用|项目|选择所引用的DLL即可。
9. vs2019缺少程序集引用
vs中无法嵌入互操作类型的解决方案:
选中项目中引入的dll,鼠标右键,选择属性,把“嵌入互操作类型”设置为False。
例如:
MSXML2.XMLHTTP _xmlhttp = new MSXML2.XMLHTTPClass();
提示无法嵌入互操作类型MSXML2.XMLHTTPClass请改用适用的接口


- 相关评论
- 我要评论
-