永发信息网

关于C++中ReadConsoleOutputCharacter函数的问题

答案:2  悬赏:70  手机版
解决时间 2021-02-14 08:53
下面的代码在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;
}
最佳答案
这样?:
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;
}
全部回答
要重用函数,就要使用多文件编译。多文件编译中,函数的声明和定义应该分开,声明存放在头文件中,定义存放在c\cpp文件中,别的文件想要重用这些函数,只要include这个头文件,并且在编译链接的时候将这些函数的c\cpp文件包含进去就可以了。如果用的是vc,不用关心后面的编译链接怎么包含函数的c\cpp文件,vc已经帮你做了,只要include头文件就行了。但是如果用的是devcpp,codeblocks等,需要建立工程,用单文件编译模式是不行的(不过可以手动编译)。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
明牌珠宝(旗舰金店)怎么去啊,我要去那办事
娜家衣柜时尚店这个地址在什么地方,我要处理
胰岛棒是什么??
尚美银泰地址在哪,我要去那里办事
激光手电充电器真确使用方法
孙中山之所以提出平均地权的思想,主要是为了
鲁育超市地址在什么地方,想过去办事
哎呀呀(舜王北街)地址在什么地方,我要处理点
怎么自己创建风控体系?
怎样可以让Windows Media Player可以播放MP4
黄金蟒最长有多少米
据《香港商报》报道,欧盟将立法全面禁止捕猎
海贼王红发香克斯救路飞被咬断手臂之迷,难道
湘乡市湘潭大安电动三轮车(白田专卖店)怎么去
中华骏捷氧传感器多少钱,大家有什么看法?
推荐资讯
If you want the position here, you wear sh
阅读文章,选择正确答案,回答问题。It was a
盗墓笔记动漫版叫什么
泰安商业银行(金阳大街宁阳县房产管理局1层)
广州市白云区的初中名校有哪些
已知IP地址为192.168.222.39,子网掩码为255.2
针式打印机的感应器是什么样的,有没有好心的
曲靖为什么传销疯狂?
旭光图文数码工作室(工程复印)地址在什么地方
梦幻69级点满技能需要多少经验多少钱?
唔要扰我偶唔识拍拖什么意思
甲丽净世龙世家地址在哪,我要去那里办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?