由于另一个程序正在运行中。。。。

时间:2021-03-05 06:03:54
问题:
开发一个组件。当以DLL进程内组件形式调用时,一切正常!
但当组件以EXE进程外组件方式调用时,
总是弹出这样一个框--"由于另一个程序正在运行中,此操作无法完成.请选择"切换到"来激活正在运行中的程序并更正问题. "

想知道---是什么原因造成的?

8 个解决方案

#1


up

#2


观察了一下,好像是等待时间超过10秒,就会出现这个窗口!

如何去掉这个窗口?因为有时组件运行要超过10秒的。

#3


是不是组件套间设置问题?

#4


>>是不是组件套间设置问题?

"组件套间"如何设置?

能详细说说吗?

谢谢!

#5


up

#6


UP

#7


这个对话框是因为 mfc中的一种套间设置造成的,因为另一个进程长时间没有相应,你当前的设置提供了这种方式。
解决方式如下:

//下面的代码是vc自动生成的,造成了切换到的对话框。
 //if (!AfxOleInit())
 //{
//  AfxMessageBox(_T("OLE Initialization Failed!"));
//  return FALSE;
// }
 
 
//   采用下面的方式,避免弹出进程等待对话框。
 if (S_FALSE==OleInitialize (NULL)) {
  AfxMessageBox(_T("OLE Initialization Failed!"));
  return FALSE;
 }

//但是在最后要有一个对应的结束初始化的调用。

你可以在msdn中了解一下,这个两个套间初始化的区别。

#8


按你说的改过了,好像还是不行:(

#1


up

#2


观察了一下,好像是等待时间超过10秒,就会出现这个窗口!

如何去掉这个窗口?因为有时组件运行要超过10秒的。

#3


是不是组件套间设置问题?

#4


>>是不是组件套间设置问题?

"组件套间"如何设置?

能详细说说吗?

谢谢!

#5


up

#6


UP

#7


这个对话框是因为 mfc中的一种套间设置造成的,因为另一个进程长时间没有相应,你当前的设置提供了这种方式。
解决方式如下:

//下面的代码是vc自动生成的,造成了切换到的对话框。
 //if (!AfxOleInit())
 //{
//  AfxMessageBox(_T("OLE Initialization Failed!"));
//  return FALSE;
// }
 
 
//   采用下面的方式,避免弹出进程等待对话框。
 if (S_FALSE==OleInitialize (NULL)) {
  AfxMessageBox(_T("OLE Initialization Failed!"));
  return FALSE;
 }

//但是在最后要有一个对应的结束初始化的调用。

你可以在msdn中了解一下,这个两个套间初始化的区别。

#8


按你说的改过了,好像还是不行:(