c語言消息
1. c語言如何實現控制台消息循環
消息依賴於窗口,在我的知識范圍內是不可以這樣的...
不過如果你的程序是這樣的結構(偽代碼):
int _tmain()
{
初始化窗口,顯示窗口
消息循環()
{
//...
}
結束程序
}
也就是說,使用控制台程序來創建一個窗口,想要讓滑鼠點擊那個窗口以後,控制台窗口顯示一句話的話
直接printf即可
如果想要通過點擊控制台窗口來捕捉單擊消息的話...可以考慮用上面的結構創建一個跟隨控制台窗口移動的全透明的窗口
再或者自己實現一個控制台....(這個不作考慮)
2. C語言Socket伺服器怎麼給客戶端發消息
socket
伺服器給指定的客戶端發消息該怎麼處理(tcp)(c語言)
多個客戶端之間進行通訊,通過伺服器轉發的形式,現在客戶端1請求向客戶端2發送消息,先把消息發送到伺服器,伺服器怎麼才能把消息轉發到客戶端2而不是轉發給客戶端3或者他自己。
3. c語言消息框程序移到桌面
消息框程序移到桌面步驟如下:
1.第一步,打開C-Free5.0創建一個新的空白頁,然後編寫C語言的基本格式,注意格式縮進,然後進入下一步。
2.其次,完成上述步驟後,使用「 FILE」進行聲明,然後進入下一步。
3.接著,完成上述步驟後,使用fp = fopen(「 c:\ czb_one.txt」,「 wb」)打開並創建文件,然後進入下一步。
4.然後,完成上述步驟後,輸入if判斷,如果程序創建不正確,則將其關閉,exit表示退出,然後進入下一步。
4. C語言的「事件」、「方法」、「消息」等名詞的定義
「事件」、「方法」、「消息」與具體語言無關,他們是一種抽象的概念。
5. C語言問題,字元串和消息發送
L表示寬字元,用兩個位元組表示一個字元,和char*不兼容,所以只要你用char path[]怎麼表示都是不合適的,應該用wchar_t path [] = L"./img/bk.jpg";
還是系統的學習一下消息吧!粘貼不是這么發的,粘貼屬於命令類型,不是你這種消息。但是要教會你發命令由一堆的事情。正確的學法時買本《VC技術內幕》學一年左右(我可能學了超過1年還只是入門)
6. c語言消息轟炸為什麼發不出消息
虛擬按鍵失效。
1、首先在一個按鍵按下的過程執行完畢後一定要有抬起的動作。
2、函數執行比較快,如果要使用虛擬按鍵,最好是在中間加入Sleep函數來使得程序等待一段時間,否則虛擬按鍵容易因為代碼執行速度過快而失效導致發不出消息。
7. 關於c語言中消息隊列發送的結構體
消息隊列正常定義的type類型就是long,你看看是不是你定義的有問題。
#include<sys/types.h>
#include<sys/ipc.h>
#include<sys/msg.h>
#include<stdio.h>
struct msgbuf
{
long type;//類型
char buf[1024];
};
int main()
{
int msgid;
msgid=msgget(0x1000,IPC_CREAT | 0777);
struct msgbuf mb={1,"hello world"};
int ret;
ret=msgsnd(msgid,&mb,sizeof(struct msgbuf)-sizeof(long),0);
//這里的長度不包括類型的大小
}
8. C語言自定義消息函數的等待怎麼寫
消息隊列的等待就是GetMessage,沒辦法自己寫,除非你打算改Windows本身。這個函數如果沒有消息進來就會釋放CPU,如果不希望等待用PeekMessage。消息循環的格式是固定的。
9. 怎麼用C語言向指定窗口發送消息
如果是簡單情況, 需要輸入的數據就在一個文件里放著。 比如 test.dat , 而要接收數據的程序文件叫 run.exe
可以這樣 運行這個程序: run.exe < test.dat
這樣文件內容就作為run.exe運行時的輸入了。
如果是復雜點的情況,需要輸入的數據是隨時算的, 可以寫個「輸出所需數據」的程序, 就是做數據然後 printf出來就可以(別忘了回車) 。 這個程序比如叫 data.exe
可以這樣運行兩個程序: data.exe | run.exe
這樣 data.exe輸出的內容就作為run.exe運行時的輸入了
10. 用objective-c語言實現一個消息中心(NSnotificationcenter)功能
對象之間進行通信最基本的方式就是消息傳遞,在Cocoa中提供Notification
Center機制來完成這一任務。其主要作用就是負責在任意兩個對象之間進行通信。使用方法很簡單,如下幾個步驟即可:
假設A與B之間進行通信,B來觸發事件,A接受該事件,並作出響應。
1)
A編寫自定義的消息響應函數update
2)
A向消息中心注冊,[NSNotificationCenter
defaultCenter]
addObserver:
self
selector:@selector(update)
name:@"update"
object:nil]
3)
B觸發事件[[NSNotificationCenter
defaultCenter]
postNotificationName:@"update"
object:nil]
每一個進程都有一個默認的NSNotificationCenter,可以通過類方法defaultCenter獲取該消息中心的實例。消息中心可以處理同一進程中不同對象之間的消息。如果要在同一台機器上進行進程間的通信,需要使用。
消息中心以同步的方式將消息分發到所有的觀察者中,換言之,直到所有的觀察者都收到消息並處理完畢以後,控制權才會回到調用者的手裡。如果需要非同步的處理消息,需要使用通知隊列NSNotificationQueue。
在多線程程序中,通知會被分發到每一個發起消息的線程中,這可能與觀察者注冊時所在的線程已經不是同一線程。
實例:
@implementation
TestClass
-
(void)
dealloc
{
//
If
you
don't
remove
yourself
as
an
observer,
the
Notification
Center
//
will
continue
to
try
and
send
notification
objects
to
the
deallocated
//
object.
[[NSNotificationCenter
defaultCenter]
removeObserver:self];
[super
dealloc];
}
-
(id)
init
{
self
=
[super
init];
if
(!self)
return
nil;
//
Add
this
instance
of
TestClass
as
an
observer
of
the
TestNotification.
//
We
tell
the
notification
center
to
inform
us
of
"TestNotification"
//
notifications
using
the
receiveTestNotification:
selector.
By
//
specifying
object:nil,
we
tell
the
notification
center
that
we
are
not
//
interested
in
who
posted
the
notification.
If
you
provided
an
actual
//
object
rather
than
nil,
the
notification
center
will
only
notify
you
//
when
the
notification
was
posted
by
that
particular
object.
[[NSNotificationCenter
defaultCenter]
addObserver:self
selector:@selector(receiveTestNotification:)
name:@"TestNotification"
object:nil];
return
self;
}
-
(void)
receiveTestNotification:(NSNotification
*)
notification
{
//
[notification
name]
should
always
be
@"TestNotification"
//
unless
you
use
this
method
for
observation
of
other
notifications
//
as
well.
if
([[notification
name]
isEqualToString:@"TestNotification"])
NSLog
(@"Successfully
received
the
test
notification!");
}
@end