c语言console未定义标识符,C语言,AttachConsole怎么老提示undeclared identifier?

有的api函数需要用LoadLibrary,GetProcAddress查找这个函数的过程实现

#include

#include

#include

#include

typedef BOOL (WINAPI* _AttachConsole)(DWORD dwProcessId);

BOOL APIENTRY WinMain(HINSTANCE hInstance,

HINSTANCE hPrevInstance,

LPSTR lpCmdLine,

int nCmdShow)

{

hInstance = LoadLibrary(_T("kernel32.dll"));

if (hInstance == NULL)

{

return FALSE;

}

_AttachConsole AttachConsole = NULL;

AttachConsole = (_AttachConsole)GetProcAddress(hInstance , "AttachConsole");

if (AttachConsole == NULL)

{

return FALSE;

}

if (0 == AttachConsole((DWORD)-1) )

{

MessageBox(0, _T("AttachConsole fail"), _T("msg"), 0);

}

else

{

SetConsoleTitle("Hello!");

freopen("conin$", "r+t", stdin);

freopen("conout$", "w+t", stdout);

freopen("conout$", "w+t", stderr);

puts("\nHello, world!");

system("pause>nul");

FreeConsole();

}

return 0;

}

把这段代码编译生成一个简单的GUI程序(exe文件),然后打开一个控制台窗口,输入这个exe文件的路径,运行后,这个程序就会在控制台窗口中输出hello world

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: undeclared identifier是指在C语言中使用了一个未声明标识符(变量、函数、结构体等)。这通常是由于拼写错误、缺少头文件或者作用域错误等原因导致的。在编译时会出现错误提示,需要检查代码中是否存在这样的错误并进行修正。 ### 回答2: 在C语言中,undeclared identifier是指在使用变量、函数或结构体时,它们并未被声明或定义过。当编译器在识别你的代码时,遇到了这种未声明标识符,就会出现undecleared identifier的错误提示。 在编写C语言程序时,建议先声明要用到的变量、函数或结构体,再调用它们。如果没有声明就直接使用,那么编译器是无法识别这些标识符的,从而产生undeclared identifier的错误。 在声明变量时,请确保该变量在其声明语句之前并不存在。在函数调用时,确保函数的原型先被声明或定义。在使用结构体时,确保其定义和成员变量被声明在使用语句之前。 修正undeclared identifier的错误,需要先确定出错的位置,并查看是否存在漏声明的变量、函数或结构体。然后,在遗漏声明的地方添加相应的声明或定义即可。 总结起来,undeclared identifierC语言中一个常见的错误类型,通常是由于漏声明变量、函数等标识符而产生的。修复该错误,需要仔细检查代码,并确保所使用的标识符都被正确声明或定义。 ### 回答3: "C语言undeclared identifier"错误是C语言编程中的一种常见错误,指在程序中使用了未定义的标识符(变量、函数、结构体等)。 一般情况下,这个错误信息会提示未定义的标识符是哪一个,开发者可以通过检查相关代码段,查找并修复问题。 造成未定义标识符的原因可能有多种。比如在调用函数之前没有定义该函数、自定义的函数名或变量名有误、变量名没有初始化等等。 解决这个问题的方法也有一些常见的套路。一种常见的解决方法是在程序中确保所使用的所有标识符都在前面已经定义过。如果不确定是否已定义,可以先声明该标识符再进行使用。 在调用函数之前,必须确保该函数已经定义或声明过,函数声明需要包括函数的名字、参数和返回值类型等信息。 另外,在定义变量的同时也要确保该变量已经初始化或赋值,否则会出现类似的未定义标识符的错误。 总之,当出现"C语言undeclared identifier"错误时,首先要理清代码逻辑,确保所使用的标识符已经定义或声明,避免这种简单的语法错误耽搁开发进度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值