获取窗口控制台函数中参数无定义

时间:2021-09-24 06:33:05
#include <stdio.h>
#include <iostream>
#include "Windows.h"
#include "HCNetSDK.h"
#include <time.h>
#include <StdAfx.h>
using namespace std;

typedef HWND (WINAPI *PROCGETCONSOLEWINDOW)();
PROCGETCONSOLEWINDOW GetConsoleWindow;


1>c:\users\wuming5\documents\visual studio 2010\projects\预览\预览\预览.cpp(2): warning C4627: '#include <iostream>': skipped when looking for precompiled header use
1>          Add directive to 'StdAfx.h' or rebuild precompiled header
1>c:\users\wuming5\documents\visual studio 2010\projects\预览\预览\预览.cpp(3): warning C4627: '#include "Windows.h"': skipped when looking for precompiled header use
1>          Add directive to 'StdAfx.h' or rebuild precompiled header
1>c:\users\wuming5\documents\visual studio 2010\projects\预览\预览\预览.cpp(4): warning C4627: '#include "HCNetSDK.h"': skipped when looking for precompiled header use
1>          Add directive to 'StdAfx.h' or rebuild precompiled header
1>c:\users\wuming5\documents\visual studio 2010\projects\预览\预览\预览.cpp(5): warning C4627: '#include <time.h>': skipped when looking for precompiled header use
1>          Add directive to 'StdAfx.h' or rebuild precompiled header
1>c:\users\wuming5\documents\visual studio 2010\projects\预览\预览\预览.cpp(9): error C2065: 'WINAPI' : undeclared identifier
1>c:\users\wuming5\documents\visual studio 2010\projects\预览\预览\预览.cpp(9): error C2065: 'PROCGETCONSOLEWINDOW' : undeclared identifier
1>c:\users\wuming5\documents\visual studio 2010\projects\预览\预览\预览.cpp(9): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\wuming5\documents\visual studio 2010\projects\预览\预览\预览.cpp(9): fatal error C1903: unable to recover from previous error(s); stopping compilation
1>

8 个解决方案

#1


刚开始学VS2010,这个获取窗口控制台函数,应该是没错的,怎么会无定义呢

#2


HWND WINAPI GetConsoleWindow(void);
你可以使用这个函数。。。

#3


好牛X,用中文编程:1>c:\users\wuming5\documents\visual studio 2010\projects\预览\预览\预览.cpp
文件名及项目目录最好用英文,不然,会有很多问题的!(具体是不是这个原因,没注意看,但切记,不要用中文文件名和路径名)

#4


e:\vs\realpaly\realpaly\realpaly.cpp(39): error C2664: 'GetModuleHandleW' : cannot convert parameter 1 from 'const char [9]' to 'LPCWSTR'

代码:
 // 获取控制台窗口句柄
  HMODULE hKernel32 = GetModuleHandle("kernel32");
  GetConsoleWindow = (PROCGETCONSOLEWINDOW)GetProcAddress(hKernel32,"GetConsoleWindow");
运行环境,W7系统64位机,VS2010,参数没转换时怎么回事

#5


stdafx.h 
必须是第一个有效代码。
简单的说,就是必须放在源文件的开始的位置。

#7


你这个文件设置了使用预编译头,但是文件一行不是#include "stdafx.h"
你应该把这一行放在最前面。
另外GetConsoleWindow这个是基本的系统API,可以直接调用,无需LoadLibrary和函数指针啊。

#8


引用 5 楼 Saleayas 的回复:
stdafx.h 
必须是第一个有效代码。
简单的说,就是必须放在源文件的开始的位置。

这个是正解阿

#1


刚开始学VS2010,这个获取窗口控制台函数,应该是没错的,怎么会无定义呢

#2


HWND WINAPI GetConsoleWindow(void);
你可以使用这个函数。。。

#3


好牛X,用中文编程:1>c:\users\wuming5\documents\visual studio 2010\projects\预览\预览\预览.cpp
文件名及项目目录最好用英文,不然,会有很多问题的!(具体是不是这个原因,没注意看,但切记,不要用中文文件名和路径名)

#4


e:\vs\realpaly\realpaly\realpaly.cpp(39): error C2664: 'GetModuleHandleW' : cannot convert parameter 1 from 'const char [9]' to 'LPCWSTR'

代码:
 // 获取控制台窗口句柄
  HMODULE hKernel32 = GetModuleHandle("kernel32");
  GetConsoleWindow = (PROCGETCONSOLEWINDOW)GetProcAddress(hKernel32,"GetConsoleWindow");
运行环境,W7系统64位机,VS2010,参数没转换时怎么回事

#5


stdafx.h 
必须是第一个有效代码。
简单的说,就是必须放在源文件的开始的位置。

#6


#7


你这个文件设置了使用预编译头,但是文件一行不是#include "stdafx.h"
你应该把这一行放在最前面。
另外GetConsoleWindow这个是基本的系统API,可以直接调用,无需LoadLibrary和函数指针啊。

#8


引用 5 楼 Saleayas 的回复:
stdafx.h 
必须是第一个有效代码。
简单的说,就是必须放在源文件的开始的位置。

这个是正解阿