WIN32中我新建一个cpp和.h 在头文件中写了一个结构体然后在.cpp文件中使用该结构体总是报错具体如下图
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WIN32中我新建一个cpp和.h 在头文件中写了一个结构体然后在.cpp文件中使用该结构体总是报错具体如下图相关的知识,希望对你有一定的参考价值。
在你那个出错的cpp 靠前面的地方加上对A的声明比如:
#include "test.h"
和
extern ThisTest A; 参考技术A 这个问题很简单。修改一下#include "Test.h"的位置就行了。
警告信息已经提示出来了:#include "Test.h"在查找预编译头时跳过。
也就是说,Test.h文件根本没有被包含进工程中,于是编译器没编译Test.h里面的代码,所以才会产生未声明的标识符这样的错误。 参考技术B 有可能是跳过了头文件
你可以试试把#progma once改成传统一点的写法(#ifndef ...)追问
找到问题了 .cpp中stdafx头文件要放在test头文件前面。。。具体原因不晓得。。奇了怪了 以前从没遇到过
参考技术C 你的ThiTest 已经是结构体变量了,Good才是结构体类型 参考技术D #include "Test.h"放到#include"stdafx.h"下面#include "stdafx.h"
#include "Test.h"
C++函数的分文件编写
函数分文件编写一般有4个步骤
1. 创建后缀名为.h的头文件
2. 创建后缀名为.cpp的源文件
3. 在头文件中写函数的声明
4. 在源文件中写函数的定义
swap.h文件(相当于java的接口类)
#include
using namespace std;
//实现两个数字交换的函数声明
void swap(int a, int b);
swap.cpp文件(相当于java的实现类)
#include "swap.h"
void swap(int a, int b)
{
int temp = a;
a = b;
b = temp;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
}
main文件(调用类)
#include "swap.h"
int main() {
int a = 100;
int b = 200;
swap(a, b);
system("pause");
return 0;
}
以上是关于WIN32中我新建一个cpp和.h 在头文件中写了一个结构体然后在.cpp文件中使用该结构体总是报错具体如下图的主要内容,如果未能解决你的问题,请参考以下文章
在头文件中写好了一个函数,vs中哪个快捷键可以在.cpp中生成函数的定义
为啥在vs中我在头文件中设置了一个文件。在源文件中#include包含。当编译源文件时老说错误