如何在BCB 中使用MSMQ |
|
dhchang
一般會員 發表:7 回覆:9 積分:8 註冊:2003-05-15 發送簡訊給我 |
將MSMQ import 到 BCB 後
拖曳兩個MSMQQueueInfo , 兩個MSMQQueue , 一個MSMQEvent , 一個MSMQMessage 還有很大的改良空間 , 分享給有需要的人參考
void __fastcall TForm1::Button1Click(TObject *Sender) { IMSMQQueue2Ptr IMSMQQ; Variant aa; MSMQQueueInfo1->set_PathName(L".\\private$\\T3"); MSMQQueueInfo1->set_Label(L".\\private$\\T3"); MSMQQueueInfo1->Create(); IMSMQQ = MSMQQueueInfo1->Open(MQ_SEND_ACCESS ,MQ_DENY_NONE); MSMQQueue1->ConnectTo(IMSMQQ); aa = "a"; MSMQMessage1->set_Body(aa); MSMQMessage1->Send(IMSMQQ); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { IMSMQQueue2Ptr IMSMQQ; IMSMQMessage2Ptr IMSMQMsg; Variant aa; MSMQQueueInfo1->set_PathName(L".\\private$\\T3"); MSMQQueueInfo1->set_Label(L".\\private$\\T3"); IMSMQQ = MSMQQueueInfo1->Open(MQ_RECEIVE_ACCESS ,MQ_DENY_NONE); MSMQQueue1->ConnectTo(IMSMQQ); IMSMQMsg = IMSMQQ->Receive(); MSMQMessage1->ConnectTo(IMSMQMsg); aa = MSMQMessage1->get_Body(); Label1->Caption = aa; } //--------------------------------------------------------------------------- void __fastcall TForm1::MSMQEvent1Arrived(TObject *Sender, LPDISPATCH Queue, long Cursor) { IMSMQQueue2Ptr IMSMQQ; IMSMQMessage2Ptr IMSMQMsg; Variant aa; IMSMQQ= Queue ; MSMQQueue1->ConnectTo(IMSMQQ); IMSMQMsg = IMSMQQ->Receive(); MSMQMessage1->ConnectTo(IMSMQMsg); aa = MSMQMessage1->get_Body(); Label2->Caption = aa; MSMQQueue2->EnableNotification(MSMQEvent1->GetDefaultInterface()); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { IMSMQQueue2Ptr IMSMQQ; IMSMQMessage2Ptr IMSMQMsg; IMSMQEvent2Ptr IMSMQE; Variant aa; MSMQQueueInfo2->set_PathName(L".\\private$\\T3"); MSMQQueueInfo2->set_Label(L".\\private$\\T3"); IMSMQQ = MSMQQueueInfo2->Open(MQ_RECEIVE_ACCESS ,MQ_DENY_NONE); MSMQQueue2->ConnectTo(IMSMQQ); MSMQQueue2->EnableNotification(MSMQEvent1->GetDefaultInterface()); } //---------------------------------------------------------------------------發表人 - dhchang 於 2004/07/15 13:58:08 |
bytecode
一般會員 發表:2 回覆:12 積分:2 註冊:2003-08-14 發送簡訊給我 |
|
bytecode
一般會員 發表:2 回覆:12 積分:2 註冊:2003-08-14 發送簡訊給我 |
|
dhchang
一般會員 發表:7 回覆:9 積分:8 註冊:2003-05-15 發送簡訊給我 |
|
bytecode
一般會員 發表:2 回覆:12 積分:2 註冊:2003-08-14 發送簡訊給我 |
|
dhchang
一般會員 發表:7 回覆:9 積分:8 註冊:2003-05-15 發送簡訊給我 |
|
bytecode
一般會員 發表:2 回覆:12 積分:2 註冊:2003-08-14 發送簡訊給我 |
|
bytecode
一般會員 發表:2 回覆:12 積分:2 註冊:2003-08-14 發送簡訊給我 |
|
dhchang
一般會員 發表:7 回覆:9 積分:8 註冊:2003-05-15 發送簡訊給我 |
|
bytecode
一般會員 發表:2 回覆:12 積分:2 註冊:2003-08-14 發送簡訊給我 |
再次謝謝您的回答!
1)首先關於找不到模組部份,我想是否因為肇因於MSMQ的版本問題,因程式碼中有一個宣告IMSMQQueue2Ptr,故猜想是否要使用MSMQ 2.0?果然在安裝了MSMQ 2.0的機器上便可執行無誤.但是從中卻發現了另一個問題---同樣安裝Window XP的兩部機器,第一部為MSMQ 2.0,第二部則有MSMQ 1.0及3.0 獨缺MSMQ2.0,索性在第二部機器上重新安裝MSMQ,但在BCB IDE內重新Import Type Library MSMQ 2.0 Object 時有"A class named TMSMQuery is already installed" 的錯誤,應是
沒有移除註冊的問題,但我要如何得知要 unregister 哪些DLL/OCX 呢?
2)我所提的Trigger是系統服務中的觸發程序,某種程度上您的Event亦可達到相同的功能,在此先謝謝了.(http://www.microsoft.com/windows2000/technologies/communications/msmq/triggers_using.asp)
3)另有關於MSMQ應是個滿複雜的架構,是否可告知哪裡有關於您所分享的MSMQ COM介面用法的參考文件可供參考?
|
bytecode
一般會員 發表:2 回覆:12 積分:2 註冊:2003-08-14 發送簡訊給我 |
|
dhchang
一般會員 發表:7 回覆:9 積分:8 註冊:2003-05-15 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |