S
smsman
Unregistered / Unconfirmed
GUEST, unregistred user!
在C中MSMQQueueInfo->set_PathName(L".//private$//transmq");
或DELphi MSMQQueueInfo.PathName:='....'
我对MSMQ操作,在主FORM里面这样就可以成功,但是在DLL里面这样调用取报错,封成COM,还是FORM里面调用OK,但是DLL中调用就不行,谁能帮忙解惑。DELPHI的代码如下。另外使用C#和C++Build调用MSMQ,均在DLL调用COM时加载队列时停住。
var
ad: widestring;
MSMQQInfo: Variant;
MSMQMessage2: TMSMQMessage;
MSMQQueue2: TMSMQQueue;
MSMQQueueInfo2: TMSMQQueueInfo;
begin
//ShowMessage('1');
//OleInitialize(nil);
CoInitialize(nil);
MSMQQueueInfo2 := TMSMQQueueInfo.Create(nil);
MSMQMessage2 := TMSMQMessage.Create(nil);
MSMQQueue2 := TMSMQQueue.Create(nil);
MSMQQueueInfo2.PathName := './private$/transmq';
MSMQQueue2.ConnectTo(MSMQQueueInfo2.Open(MQ_SEND_ACCESS, MQ_DENY_NONE));
MSMQMessage2.DefaultInterface.Label_ := 'asf';
ad := 'sdfds';
MSMQMessage2.Body := ad;
MSMQMessage2.Send(MSMQQueue2.DefaultInterface);
MSMQQueue2.close;
或DELphi MSMQQueueInfo.PathName:='....'
我对MSMQ操作,在主FORM里面这样就可以成功,但是在DLL里面这样调用取报错,封成COM,还是FORM里面调用OK,但是DLL中调用就不行,谁能帮忙解惑。DELPHI的代码如下。另外使用C#和C++Build调用MSMQ,均在DLL调用COM时加载队列时停住。
var
ad: widestring;
MSMQQInfo: Variant;
MSMQMessage2: TMSMQMessage;
MSMQQueue2: TMSMQQueue;
MSMQQueueInfo2: TMSMQQueueInfo;
begin
//ShowMessage('1');
//OleInitialize(nil);
CoInitialize(nil);
MSMQQueueInfo2 := TMSMQQueueInfo.Create(nil);
MSMQMessage2 := TMSMQMessage.Create(nil);
MSMQQueue2 := TMSMQQueue.Create(nil);
MSMQQueueInfo2.PathName := './private$/transmq';
MSMQQueue2.ConnectTo(MSMQQueueInfo2.Open(MQ_SEND_ACCESS, MQ_DENY_NONE));
MSMQMessage2.DefaultInterface.Label_ := 'asf';
ad := 'sdfds';
MSMQMessage2.Body := ad;
MSMQMessage2.Send(MSMQQueue2.DefaultInterface);
MSMQQueue2.close;