com相关内容
我正在尝试将 wchar_t * 转换为 BSTR. #include #include 使用命名空间标准;主函数(){wchar_t* pwsz = L"foo";BSTR bstr(pwsz);cout 这会打印出 0,这比我希望的要少.进行这种转换的正确方法是什么? 解决方案 你需要使用 SysAllocString(然后是 SysFre
..
我正在尝试在没有也不会安装 Office 的服务器上运行我的应用程序. 使用 EXCEL = Microsoft.Office.Interop.Excel;...EXCEL.Application app = new EXCEL.Application();//这里抛出异常 代码在我自己的系统上运行良好,但在服务器上却出现以下异常: 未处理的异常:System.Runtime.Interop
..
如何通过 COM Interop 将 VB6 字符串数组 [Assume, s =Array("a", "b", "c", "d")] 传递给 C#.Net? 我尝试实现将 C# 字符串数组传递给 VB,并将 VB 字符串数组传递给 C#,如下所示 C#->VB 工作正常,但其他方式 (VB=>C#) 给出了一个名为 的编译错误“函数或接口标记为受限,或者函数使用了 Visual Basic
..
我在 VS2012.3(32 位 exe)中创建了一个新的控制台项目,并添加了对 Microsoft Access 的 COM 类型库引用(我尝试了 2003 和 2007).“Microsoft Access"引用显示在“添加引用"对话框中没有问题.但是,在关闭该对话框后,VS 会在两个新添加的引用上显示一个黄色三角形叠加层,并且出现以下构建错误: 无法解析 COM 引用“4affc9a0
..
假设我的应用程序在启动时调用 CoInitialize,在它存在之前调用 CoUninitialize. 假设我的应用程序使用了第 3 方组件并执行类似操作,这会导致某种故障吗? 是否可以在 CoInitialize 已提交调用时调用该调用?第二次通话会失败吗?还是只是“让它通过",因为它已经被调用了. 解决方案 CoInitialize 如果已经在调用线程中初始化,则返回 S
..
我正在用 C++ 在 COM 中编写 API,并且还在 C# 中编写使用该 API 的程序.我的问题是关于将 BSTR 传递给 COM 函数时的 BSTR 内存管理语义.假设我的 IDL 看起来像: HRESULT SomeFunction([in] BSTR 输入); 目前这个功能是这样实现的: HRESULT SomeFunction(BSTR 输入) {//做一些事情...,然后:系统
..
前段时间,您曾经能够安装 rcom 包在 R 中以使用 COM 脚本(例如,访问外部程序.)不幸的是,它 可以从存档中获取以前可用的版本. 这取决于现在限制使用的 statconnDCOM,相反对于具有 FOSS 许可证的软件包的 CRAN 政策.看http://rcom.univie.ac.at/ 和 http://www.statconn.com/. 按照存档和 statconn
..
我需要将 CString 实例转换为正确分配的 BSTR 并将该 BSTR 传递给 COM 方法.为了让代码能够同时为 ANSI 和 Unicode 编译和工作,我使用 CString::AllocSysString() 将任何格式的 CString 转换为 Unicode BSTR. 由于没有人拥有返回的 BSTR,我需要处理它并在调用完成后以最安全的方式和尽可能少的代码释放它. 目
..
我正在尝试实现 未知.我按照指示到发球台,但它不起作用.当我尝试编译时,我得到: 错误 2 错误 C2695: 'testInterfaceImplementation::AddRef': 重写虚函数与 'IUnknown::AddRef' 的不同之处仅在于调用约定 c:\users\seanm\desktop\test\test\source.cpp 61 次测试错误 3 错误 C2695:
..
我有一个 .NET 4.0 库,它使用 Shell32 和 Folder.GetDetailsOf() 从 WTV 文件中获取元数据.我已经成功地将它与控制台和 Windows 窗体应用程序一起使用,没有问题.但由于某种原因,当从 .NET 4.0 Windows 服务调用组件时,调用启动 Shell 类会导致 COM 错误. 库内失败的代码: Shell32.Shell shell
..
如何遍历 C++ 安全数组指针并访问其元素. 我尝试复制 Lim Bio Liong 发布的解决方案http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/022dba14-9abf-4872-9f43-f4fc05bd2602但最奇怪的是 IDL 方法签名竟然是 HRESULT __stdcall GetTestStr
..
我相信读取 Outlook .msg 文件(以获取额外的元数据,如主题、附件等)的唯一方法是使用 Outlook API - Application.Session.OpenSharedItem() 方法. 如果是这种情况,那么我正在寻找在我们的应用程序服务器上运行此代码的方法,该服务器没有安装 MS Office 或 MS Outlook.我收到了错误 System.ArgumentEx
..
在一个线程中,如果我使用 有区别吗 Coinitialize(nil) 而不是 CoInitializeEx(0, COINIT_MULTITHREADED); 我使用的是 Delphi 7,但我认为这个问题对于其他编程语言仍然存在感谢您的帮助. 解决方案 前者初始化 COM 的方式是将调用线程放入自己的单线程单元 (STA).后者以将调用线程放入共享多线程单元 (MTA) 的方
..
我总是用 [assembly: ComVisible(true)] 将我的 .NET 程序集标记为对 COM 可见,我认为我永远不知道何时有人可能需要从 COM 调用它们.我也开始使用 FxCop 并开始从代码分析中看到这个警告: CA1017:Microsoft.Design:因为“MyLibrary.dll"公开了外部可见的类型,所以在程序集级别用 ComVisible(false) 标
..
使用 COM 时,布尔值将作为 VARIANT_BOOL 传递,在 wtypes.h 中声明为 short.true 和 false 也有预定义的值: #define VARIANT_TRUE ((VARIANT_BOOL)-1)#define VARIANT_FALSE ((VARIANT_BOOL)0) 从 VARIANT_BOOL 转换为 C++ bool 类型的最佳方法是什么?明显的变
..
我想将警报名称列表从 COM 传递到 ASP 页面中使用的 VBScript.如果方法名称是 GetAlarms,那么方法的签名是什么?GetAlarms 返回的警报数量会有所不同. VBScrip 支持安全数组吗? 解决方案 *.idl 文件中的声明如下所示: [id(1)] HRESULT GetAlarms([out,retval] SAFEARRAY(VARIANT)* p
..
我想在 MATLAB 中打开和关闭一个 Excel 文件.我已经尝试过 下面的代码,但它在使用 actxserver h.WorkBooks.Item(wbkname).Close; 这是我解决此问题的代码,如何终止 excel 文件? .Quit.删除 我也尝试通过 VBA 子模块关闭 excel 文件,但它给了我一个错误消息: fullFileName = [pwd '\KOSPI2
..
我在我的应用程序中使用了第三方组件,该组件作为 COM 组件分发,或者可以使用 .manifest 文件进行引用.无论哪种方式,它都是使用 CoCreateInstance() 加载的.第三方组件所需的文件位于子文件夹中.组件开发人员告诉我在可执行文件的 Visual Studio 2010 设置(在“Manifest"部分)中包含一个 .manifest 文件,并且加载组件没有问题. 现在
..
我需要迁移 32 位 dll 才能在 64 位 C#(以及 C++)应用程序中使用它.dll 是用非托管的 delphi 代码编写的.我无法重新编译 dll,唯一的方法是使用进程间通信 (IPC).我搜索了很长时间,但我发现的信息并不多.我找到的最佳指南在此链接中:从 64 位代码访问 32 位 DLL. 我遵循本指南来实现我的目标,因为这个论坛经常被引用.所以指南解释我必须做三个步骤:
..
我正在尝试获取 InDesign 文件中图形的详细信息.出于技术原因,我使用的是 COM.不是我最喜欢的,因为(在 StackOverflow 的其他地方讨论过)你必须花费一半的时间来铸造.在 Theory (!) 中,下面的代码片段应该可以工作.Intellisense 将 doc.AllGraphics 显示为返回 objects. http://www.indesignscriptin
..