关于C++中ReadConsoleOutputCharacter函数的问题
答案:2 悬赏:70 手机版
解决时间 2021-02-14 08:53
- 提问者网友:溺爱和你
- 2021-02-13 10:42
下面的代码在DEVC++可以正常运行,在vs2012中不能运行...能告诉我应该怎么改么
#include
#include
#include
using namespace std;
void gotoxy(int x, int y);//位置函数
char* GetStr(int x, int y);
int main()
{
cout << "★";
char *str = GetStr(0, 0);
gotoxy(2, 2);
cout << str;
return 0;
}
void gotoxy(int x,int y)
{
COORD pos;
pos.X = 2*x;
pos.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
}
char* GetStr(int x,int y)
{
COORD pos;
pos.X = x;
pos.Y = y;
LPSTR str;
DWORD read;
ReadConsoleOutputCharacter(GetStdHandle(STD_OUTPUT_HANDLE), str, 3, pos, &read);
return str;
}
最佳答案
- 五星知识达人网友:举杯邀酒敬孤独
- 2021-02-13 10:49
这样?:
char* GetStr(int x, int y)
{
COORD pos;
pos.X = x;
pos.Y = y;
LPSTR str = new char[100];//但是这样会内存泄露吧。。
DWORD read;
ReadConsoleOutputCharacterA(GetStdHandle(STD_OUTPUT_HANDLE), str, 3, pos, &read);
return str;
}
全部回答
- 1楼网友:天凉才是好个秋
- 2021-02-13 11:13
要重用函数,就要使用多文件编译。多文件编译中,函数的声明和定义应该分开,声明存放在头文件中,定义存放在c\cpp文件中,别的文件想要重用这些函数,只要include这个头文件,并且在编译链接的时候将这些函数的c\cpp文件包含进去就可以了。如果用的是vc,不用关心后面的编译链接怎么包含函数的c\cpp文件,vc已经帮你做了,只要include头文件就行了。但是如果用的是devcpp,codeblocks等,需要建立工程,用单文件编译模式是不行的(不过可以手动编译)。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯