你好我在Windows XP中使用Code :: Blocks。 當我運行這個程序時,我得到一個運行時錯誤爲"drawing operation was attempted when there was no current window".
我想知道爲什麼會這樣發生。爲什麼我得到運行時錯誤
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <windows.h>
#include <conio.h>
void *print_message_function(void *ptr);
main()
{
pthread_t thread1, thread2;
char *message1 = "Thread 1";
char *message2 = "Thread 2";
int iret1, iret2;
iret1 = pthread_create(&thread1, NULL, print_message_function, (void*) message1);
iret2 = pthread_create(&thread2, NULL, print_message_function, (void*) message2);
pthread_join(thread1, NULL);
pthread_join(thread2, NULL);
printf("Thread 1 returns: %d\n",iret1);
printf("Thread 2 returns: %d\n",iret2);
exit(0);
}
void *print_message_function(void *ptr)
{
char *message;
char hello;
for(;;)
{
message = (char *) ptr;
printf("%s \n", message);
Sleep(1000);
// break;
fflush(stdin);
/*drawing operation was attempted when there was no current window*/
//The happens from next line onwords
if(kbhit())
{
hello = getchar();
printf("The interrupt %d", hello);
}
}
}
'kbhit()'已棄用,請改用'_kbhit()'。 –
@亞歷山大巴庫林:非常感謝您解決這個問題。但只是想知道爲什麼'_knhit()'爲什麼不'kbhit()'? –
很好的機會取消刪除我的答案:)'_kbhit()'被稱爲(由MSDN)替代棄用的'kbhit()'。我不知道這個決定背後的確切原因。查看我的答案鏈接到文檔。 –