草庐IT

com_actionbarsherlock

全部标签

windows - 在 Delphi 中使用 COM 支持在 DLL 和 .EXE 之间切换

我有以下情况:我有一个delphi应用程序{$APPTYPEGUI}。(APP1)如果APP1启动,它会运行代码begin和end.,就像它应该的那样。稍后,APP1将被转换为DLL(另一个应用程序将执行此操作-APP2)。APP2添加IMAGE_FILE_DLL标志到NTFileHeader中的CharacteristicsAPP1。然后APP2尝试使用LoadLibrary加载DLL(APP1)(或加载dll的其他一些COM命令)但它返回错误:WindowsencounteredaninternalerrorwhileinitializingCOMlibraries.我已经用C项目

c++ - 如何在运行时加载 COM DLL

我有一个VB6COMDLL。我想从C++中使用它。我知道如何注册它,从DLL生成一个tlb文件,并在C++中#import它。但是,我希望在运行时动态地加载和使用这样的DLL,而无需提前知道它们。这可能吗?谢谢, 最佳答案 是的,但你需要把问题弄清楚。有时,您确实预先知道COM接口(interface),只是不知道实现。在这种情况下,您可以创建接口(interface)的虚拟实现并#import那个。在运行时,您仍然会注册真正的组件,从中获取对象(可能通过CoCreateInstance)并将其存储在适当的智能指针中。在VB6中,它

未找到 PHP 类 'COM'

我正在运行WindowsServer200832位、PHP5.4.5和Apache2.2.22。我很确定COM是内置于PHP核心的,但是当我运行代码来调用一个新的COM对象时,我得到一个“找不到类‘COM’”的错误。我调用的COM对象是MicrosoftWord,已安装。代码:$word=newCOM("word.application")ordie("CouldnotinitiateWordCOMObject.");PHP只是吐出上述错误。 最佳答案 来自用户对PHPwebsite的评论:FromPHP5.4.5,COMandDO

.net - CLR 如何实现 COM 实现的二进制级别的互操作性?或者不?

COM是一个对象在内存中以二进制级别表示的标准。考虑到这一点,在任何语言中使用COM对象都很容易。您只需要以COM要求的方式解释内存,您就可以控制COM对象。我认为CLR是用相同的互操作性思想创建的,但是有一个抽象层,比如自己的语言(不是二进制)。考虑到这一点,CLR如何实现像COM那样的二进制级别的互操作性?还是没有达到?COM和CLR是互补的东西吗?或者是相互替代的东西,因为MS似乎一直在做。使用COM,您不依赖于虚拟机。使用CLR,您是否依赖于虚拟机? 最佳答案 有天壤之别。COM通过简单实现了互操作性。规则非常少,只有标准化

c++ - 在运行时在 v110 可执行文件中使用 v90 COM dll 是否安全?

在使用v110编译器构建的可执行文件中使用使用v90编译器构建的COMdll是否安全?可执行文件在运行时通过COM接口(interface)使用v90dll(它不是#imported)。可执行文件是根据dll的tlb构建的。两者都静态链接到MFC,并且都使用/MT版本的运行时库。我的理解是这是可能的,但并不安全。由于存在使用注意事项(即内存分配不同,因此不能在dll中分配对象并在可执行文件中删除对象,因为这会导致意外行为)。有人可以为我澄清一下吗? 最佳答案 是的,它是安全的。前提是您遵守COM规则。COM规则是ABI1规则,包括与

c++ - COM 中的 Release() 函数

下面是一个c++程序的main方法。intmain(){HRESULThr=S_OK;IDataCollectorSet*pdcs=NULL;hr=CoInitializeEx(NULL,COINIT_APARTMENTTHREADED);hr=CreateDCS(pdcs);if(FAILED(hr)){wprintf(L"CreateDCSfailed.\n");gotocleanup;}hr=AddDataCollector(pdcs);if(FAILED(hr)){wprintf(L"AddDataCollectorfailed.\n");gotocleanup;}hr=Sav

android - 蓝牙 RFCOMM 连接 : read serial data from com port in Windows 7

我正在使用Android蓝牙聊天示例应用程序。我正在尝试从Windows7中的Android设备读取串行数据。我已经能够将Android设备与笔记本电脑上的蓝牙适配器配对。根据其他一些讨论,我将示例应用程序中的UUID替换为以下内容:privatestaticfinalUUIDMY_UUID=UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");当我运行Android应用程序时,我可以连接到笔记本电脑。在我的Android设备的“硬件”属性中,有一个名为“StandardsSerialoverBluetoothlink(COM1

windows - 从 32 位 wix 脚本注册 64 位 com 组件

我有为IE安装和注册32位COM组件的WIX脚本,我还想在同一个包中包含IE的64位COM组件而不创建额外的包(不想让用户混淆2个相同的程序添加/删除面板),我只看到一个变体-像这样运行操作[Windows文件夹]\SysWOW64\regsvr32.exe并且没有检查这个操作的响应因此,我的安装程序将在32位和64位窗口中运行问题:还有其他方法吗? 最佳答案 您应该将32位注册的注册表项放在Win64="no"的组件中。这将确保在为64位编译时,注册保持32位。 关于windows-从

windows - 调试 Windows 组件对象模型 (COM) 中的内存泄漏

我们有一个在Windows上运行的nativeC++应用程序,它使用组件对象模型(COM)作为客户端。在我们的例子中,我们可以使用IUIAutomation。不幸的是,我们的代码中存在内存泄漏,使用我们的基本内存调试方法没有显示出来:_CRTDBG_MAP_ALLOC-http://msdn.microsoft.com/en-us/library/x98tx3cf.aspx我们如何调试与滥用COM/IUnknown/和跨COM屏障的内存分配相关的可执行文件中的内存泄漏?我们在工具/库/等方面很灵活。我们在运行VisualStudio2012的Windows8上。

Python win32com EXCEL 返回无

这是我的第一个问题,我对python和英语也有点不好,希望你能理解......我正在尝试循环浏览Excel列中的行。最后几行返回None,我的代码有什么问题?importwin32com.clientexcel=win32com.client.Dispatch("Excel.Application")forninrange(1,200):n=repr(n)cell="b"+nlis=(excel.ActiveWorkbook.Activesheet.Range(cell))iflis!="":print(lis)else:print("There'snothinghere")它为白色行