草庐IT

com_error

全部标签

c++ - COM 函数生成不会消失的线程

我正在开发一个小型应用程序,该应用程序旨在调用一些(非常多样化的)功能,遗憾的是这些功能超出了我的控制范围,并且设计的方式让我不知道何时完成了正确的用户操作。特别是其中一些会产生一个线程来完成它们的工作,最终会在未来的某个时刻死亡。所以有些是同步实现的,有些是异步实现的,我的代码不知道它会是哪一个。我的应用程序的唯一目的是启动这些任务并在完成后终止。由于目的是自动化,我预计它会在短时间内从批处理文件中调用100次,所以我不希望这个过程停留的时间超过绝对可能的时间。因为我没有可以等待的信号,我的主线程上的ExitThread()似乎是可行的方法,这样由外部代码产生的任何线程最终都会终止进

c++ - 关闭应用程序时如何抑制 "There are still active COM objects in this application"错误?

我已经编写了一些用于在我的C++Builder应用程序中进行拖放的ATLCOM对象。由于我无法控制的原因,当用户试图关闭我的应用程序时,它仍然具有事件的COM对象。这是因为使用我的对象的其他COM客户端似乎缓存了我的COM对象并且不释放它们-结果,当用户单击“X”关闭我的程序时,我的COM对象的引用计数仍然大于零.这会导致用户收到如下不友好的消息:我希望我的应用程序安静地终止,而不是向用户询问这个烦人的问题。如何禁止这条消息? 最佳答案 弹出消息由atlmod.h中的TATLModule::AutomationTerminatePr

java - com.ibm.mq.MQException : MQJE001: Completion Code '2' , 原因 '2035'

我正在构建一个应该能够连接到IBMWebSphereMQ队列管理器的Java应用程序,但我不明白为什么我一直收到此错误。我已经通过MQExplorer使用setmqaut将管理权限授予了我的用户ID。我还在我的channel中定义了MCAUSER,并且我还将用户与MQWindows组相关联。任何人都可以提供一个简短的教程/示例,说明如何在Windows环境中将Java程序与WebSphereMQ安装连接起来吗? 最佳答案 如果您在channel中设置了MCAUSER,那么这会覆盖客户端提供的任何ID。如果您仍然得到2035,则有两种

c++ - AdjustTokenPrivileges 错误 ERROR_NOT_ALL_ASSIGNED

请告知下面代码中指出的错误,为什么会这样?我是C++的新手。我查看了StackO和MSDN(例如link),但它们对我没有帮助,因为我不知道自己做错了什么。HANDLEhToken;if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken)){returnFALSE;}{SetPrivilege(hToken,L"SeBackupPrivilege",1);BOOLSetPrivilege(HANDLEhToken,//accesstokenhandleLPCTSTRlpsz

c++ - Create dir with Qt and Windows' "CreateDirectory"return -1, error

我想做一个简单的应用:在线编辑用户应该给出他/她想在工作目录中创建的目录的路径(路径应该总是这样的:./dirname-现在我不处理任何错误,假设一切正常)并且当他/她单击确定按钮时,应该创建一个名为“dirname”的目录。但是当我通过路径时,让我们说“./testdir”并单击“确定”,我的应用程序退出并显示“ERRORINCREATEDIRECTORY”,当然它不会创建目录。出了什么问题以及如何解决这个问题?我使用的是QtCreator2.8.1基于WindowsXP上的Qt5.1.1(MSVC2010,32位)。代码如下:主窗口.h#ifndefMAINWINDOW_H#def

c++ - 等待 COM 端口上的数据?

我正在寻找一种方法让Windows串行端口在接收到数据之前超时。如果有某种事件触发或函数完全按照我的意愿行事,那就太好了。这是我当前的实现。voidwaitforCom(unsingedcharbyte){while(true){ClearCommError(serial_handle,&errors,&status);if(status.cbInQue>0){//checkifcorrectbytebreak;}}} 最佳答案 您可以使用的另一个API调用是WaitCommEvent()。http://msdn.microsoft

COM 引用计数

美好的一天。什么是初始化COM接口(interface)引用计数的正确方法?我看到很多例子,其中引用计数被初始化为1,但也看到了设置为0的例子。什么是差异? 最佳答案 您必须这样设置它,以便在调用最后一个Release()时对象自行处理。这通常意味着当您创建对象时,在您处理指向请求该对象的调用者的对象指针之前,它的引用计数必须为1。您是将引用计数器初始化为零然后调用AddRef()(在将指针移交给调用方之前)还是将其初始化为1而不是调用AddRef()通常由您决定。 关于COM引用计数,

python doc 到 docx 转换,comtypes.Documents.Open 抛出 ValueError : NULL COM pointer access

背景我有一个应用程序,我想在其中将.doc转换为.docx。之后处理.docx文件以进行数据挖掘。最终用户使用Web界面访问此服务。Web应用程序是在Django1.6中开发的。要将.doc转换为.docx,我们需要安装了MSOffice的Windows平台。话虽如此,我有一个正在运行的AWSWindowsServer2012R2实例(它是Windows64位)。我将Apache(64位)与mod_wsgi和Python2.7.8(64位)一起使用。现在,这是我将.doc转换为.docx的代码importtempfile,sysimportcomtypes,comtypes.clien

windows - 您可以从服务器端 javascript 调用 COM 组件吗?

是否有可能(使用javascript的服务器端实现之一..参见http://www.nakedjavascript.com/getting-started-55)实例化COM对象并在其上调用方法? 最佳答案 有node-win32ole(npm安装win32ole)。 关于windows-您可以从服务器端javascript调用COM组件吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/quest

c++ - 是否可以忽略 UnMapViewOFFile() 的错误 487 (ERROR_INVALID_ADDRESS)?

下午好,我们正在尝试构建内存映射文件缓存程序的原型(prototype),供Windows和Linux32位应用程序使用。每次我们运行原型(prototype)时,当我们尝试调用UnMapViewOfFile以取消映射缓存的内存映射文件区域时,我们都会收到错误487(错误地址无效)。我们认为发生这种情况是因为我们尝试取消映射previouslu未映射的区域。我们想知道是否可以忽略此错误消息。我们尽力确保对MapViewOfFile的每次调用都通过以下方式与UnMapViewOfFile匹配,每次调用MapViewOfFile时,我们都使用以下代码:std::dequeranges_ty