PDA

View Full Version : خطای ERROR_INVALID_ACCESS در خواندن از کنسول



#target
چهارشنبه 04 آبان 1390, 13:36 عصر
سلام من با کد زیر میخوام از کنسول ورودی بخوانه اما GetLastError خطای 0xC یا ERROR_INVALID_ACCESS برمیگردونه !



#include <Windows.h>
int main()
{
char* x = "";
ReadConsole ( GetStdHandle(STD_INPUT_HANDLE) , x , 10 , NULL , NULL);

}

بجای ReadConsole تابع ReadFile هم گذاشتم نشد.

اما نوشتن روی کنسول با WriteFile مشکل نداره !

روش دیگری برای خواندن از کنسول در ویندوز وجود داره ؟ (منظور فقط با توابع API )

mehdi.mousavi
چهارشنبه 04 آبان 1390, 15:01 عصر
سلام.
می تونید بدین شکل عمل کنید:

HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE);
_ASSERT(hStdin != INVALID_HANDLE_VALUE);

DWORD cbCharsRead = 0;

TCHAR buffer[64] = {NULL};
if(ReadConsole(hStdin, buffer, sizeof(buffer), &cbCharsRead, NULL))
{
buffer[cbCharsRead] = NULL;
//Do whatever you'd like to do with buffer...
}


موفق باشید.

#target
چهارشنبه 04 آبان 1390, 17:08 عصر
تشکر . الان نکتشو فهمیدم ! پارامتر چهارم رو نباید Null میدادم در حالی که آخری NULL بوده