首页 文章
  • 0 votes
     answers
     views

    如何定义和编组BSTR *类型

    我想知道如何将字符串类型编组为BSTR *类型 . 只是详细说明,C结构如下: struct MyStruct { BSTR* string; int a; } 我需要在C#方面定义一个新的sturct,我尝试了string []和IntPtr []但是没有取得成功 . 谢谢你的帮助! 编辑:c结构: struct HTTPTEXTRENDERERFILTERINFO { ...
  • 3 votes
     answers
     views

    从C#调用C函数时出现访问冲突异常

    我有以下C函数(属于一个COM接口,派生自IUnknown),我想从C#代码调用: C声明如下: HRESULT Function1([in] STRUCT1 *s1, [in, out] STRUCT2 *s2, [in] SIZE_T var1); 工作C程序中的声明: STDMETHOD(Function1)( THIS_ __out STRUCT1 * s1, _...
  • 1 votes
     answers
     views

    通过COM抛出访问冲突的事件调用

    我有一个遗留的VB6应用程序,其中我们创建一个 Task 对象来执行我们收到事件后完成的工作,然后我订阅了这个任务的事件,最后我 WaitOne 在 AutoResetEvent 我用来控制线程 . 我还将任务 ContinueWith 设置为 Set AutoResetEvent . 当我使用控制台应用程序(用.NET编写)测试此设置时,我没有一个问题 . 但是,当我通过VB6调用相同的方...
  • 1 votes
     answers
     views

    本机应用程序可以使用免注册COM来使用.NET COM组件吗?

    Q: Can I make a native client that consumes a .NET COM component, using reg free COM? 即我可以在其清单中使用COM信息创建一个C应用程序,而不是在注册表中注册组件(COM'stuff')吗? 注意:我开始考虑这个问题的reg免费COM,并没有通过网络搜索找到快速回答 . 当我找到答案时,我想我会在SO上发帖,以...
  • 2 votes
     answers
     views

    ActiveX控件在IE以外的单独窗口中运行

    我在C#.NET中开发了一个ActiveX控件 . 我创建了一个带有默认界面的类库 . 给定GUID,ProgId并使其可见,可互操作 . 注册 . 创建一个cab文件,然后使用object标签将其嵌入HTML页面,方法是指定它的classid和codebase . 使用JavaScript方法加载它 . 这是工作 . 但问题是它作为Internet Explorer以外的单独窗口运行 . 我想将...
  • 6 votes
     answers
     views

    CoInitializeEx在COM对象内部调用时返回S_OK

    前段时间,我不得不修改旧的COM DLL(Visual C 2010,ATL),将其从“Apartment”线程模型迁移到“Both”,即现在可以从STA和MTA线程调用它而无需序列化调用(当然,我不得不为共享数据添加内部同步 . 当从.NET应用程序通过Interop调用我的DLL时,这会在将COM事件(连接点)转换为.NET事件时导致问题(即使在.NET应用程序中我也必须支持STA和MTA) ...
  • 0 votes
     answers
     views

    Excel 12 Interop HRESULT 0x800A03EC

    我正在使用Excel 12 Interop在C#中编写程序,当我在安装了Microsoft Office 2003的Windows xp机器上运行它时,我的程序抛出了HRESULT 0x800A03EC异常 . 我的开发机器有Windows 7 64位和Microsoft Office 2007,程序运行正常 . 我的SaveAs代码是这样的: wbk.SaveAs(path, Excel.XlF...
  • 2 votes
     answers
     views

    在我的C#代码中调用COM DLL API的步骤

    我有一个本机DLL,我想在我的.NET / C#项目中通过COM使用 . 为了在我的C#项目中使用它,我对要遵循的步骤感到有些困惑 . 以下是我的理解,无论我错在哪里,请纠正我 . 使用regsvr32在机器上注册COM DLL . 以某种方式从该本机DLL获取互操作DLL(RCW) . 不知道怎么做? 在.NET / C#项目中添加对interop DLL的引用 开始引用来自CO...
  • 0 votes
     answers
     views

    VS 2005中引用的VB6 Com dll(XYZ.dll)重命名为interop.XYZ.dll

    也许是一个简单的问题 . 该项目有一个VB-COM Dll,在引用中被重命名为interop.dllname.dll . 现在,如果我尝试删除并包含一个新的引用(对于同一个dll),它不会被重命名,而是按原样添加 . 知道为什么没有重命名?
  • 1 votes
     answers
     views

    将DLL(COM对象)部署到Excel vba引用[duplicate]

    这个问题在这里已有答案: c# excel dll - can't add a reference to the specified file - regasm 2个答案 我在VS2010中开发了(VB.Net)DLL以在Excel中使用(Windows 7 64位,32位Office 2010) 类库同时选中'Make COM-Visible'和'Register for COM inter...
  • 1 votes
     answers
     views

    最简单的COM Interop应用程序泄漏内存 - 我做错了什么?

    C# namespace TestController { [ComVisible(true)] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] public interface IController { void DoSomething(); } [Com...
  • 163 votes
     answers
     views

    解读“记忆泄漏”

    在.NET透视图中: 什么是memory leak? 如何确定应用程序是否泄漏?有什么影响? 如何防止内存泄漏? 如果您的应用程序有内存泄漏,当进程退出或被杀死时它是否会消失?或者,即使在流程完成后,应用程序中的内存泄漏也会影响系统上的其他进程? 那么通过COM Interop和/或P / Invoke访问的非托管代码呢?
  • 2 votes
     answers
     views

    使用C#/托管代码为免注册COM Interop设置DLL

    我是COM的新手,必须为C dll创建一个COM包装器,以使托管代码可以访问它的某些功能 . 我主要跟着this tutorial on code project来创建一个COM ATL dll . 我创建了一个后构建步骤,调用COM dll上的tlbimp.exe来创建包装 . 添加对tlbimp.exe创建的dll的引用有效,并且我获得了COM dll上的方法的代码完成,并且可以编译使用该dl...
  • 7 votes
     answers
     views

    强制.NET互操作使用本地COM DLL

    是否可以强制互操作程序集引用其关联的COM DLL的本地副本? 这是场景: 我有一个引用互操作程序集(Interop.OTAClient.dll)的.NET应用程序,它是COM DLL的互操作程序(OTAClient.dll,它是HP Quality Center的自动化API) . 我对COM不是很了解,但据我所知,interop程序集通过注册表中的GUID引用查找COM类,而不是指向特定文件 ...
  • 12 votes
     answers
     views

    在构建服务器上注册COM引用的DLL

    我们正在开发一个引用一些COM库的C#应用程序(例如AutoIT) . 我在源控件下包含所有引用的组件,在第三方“Libs”文件夹中 . 问题是COM dll在.csproj文件中没有HintPath属性,我认为必须使用regsvr32(或使用某种脚本)手动注册这些属性 . 我目前正在寻找创建一个将在每次构建之前运行的MSBuild脚本,但是我无法弄清楚我应该手动调用regsvr32.exe还是使...
  • 1 votes
     answers
     views

    “值不在预期范围内 . ”尝试使用c#调用COM对象上的方法时

    尝试使用c#调用COM对象上的方法时出现异常 . 只有当我尝试在不使用tlbimp.exe生成的COM运行时可调用包装器(RCW)互操作程序集的情况下调用该方法时,才会发生这种情况 . 当严格使用COM互操作程序集时,一切都很完美 . 我不想使用COM互操作程序集的原因是因为目标机器上的CLSID和ProgID可能与创建互操作程序集时不同,但方法名称,定义和结构是相同的 . 但是,在此测试中,CO...
  • 1 votes
     answers
     views

    Excel VBA中的C#COM互操作DLL

    在尝试从已经存在的DLL源构建用于Excel VBA的DLL时,我陷入了第一步 . 来源看起来像这样 using System; using System.Runtime.InteropServices; using System.Text; namespace ZCon { public class ZConsts { #if __MonoCS__ ...
  • 1 votes
     answers
     views

    在C中为VB6编写.dll

    我正在尝试将基于VB6的.ocx迁移到C中 . 我正在解决的迁移路径如下: 将当前的.ocx迁移到常规的COM .dll中(它不确定't really have any user interface components, and I'我不知道为什么它仍然是.ocx) . 编写COM .dll的C版本,并将其用作我的替代品 . 我的问题是: 一个 . 这看起来是正确的方法吗? 湾如何在...
  • 0 votes
     answers
     views

    vb6 dll可以使用gac中的.net com可见dll

    我有一个.Net COM可见dll和一个VB6 DLL . 我在GAC上注册了.Net dll并注册了VB6 dll . 我的问题是VB6 dll可以引用GAC中的.Net dll . 如果是,怎么办呢?通常我会在.Net dll上使用 regasm ,一切都会好的,但现在.Net dll在GAC中,所以我不认为这种方法是可行的 .
  • 4 votes
     answers
     views

    VB6 COM调用.Net COM DLL

    Happy 20th Birthday VB6! 是的,即使支持在13年前用完,VB6仍然存在 . 请随意给我留言,但请提供您对此问题的任何见解 . 我在Citrix服务器场上有一个VB6 EXE . 数据是通过COM从托管VB6 COM DLL的另一台服务器获得的 . COM包将导出并安装在每台Citrix计算机上 . EXE和COM DLL都写入旧的 Logger . 我正试图摆脱旧的 L...
  • 1 votes
     answers
     views

    用.NET COM .dll替换本机C COM .dll

    我们的客户拥有使用我们提供的本机C COM注册.dll的旧Win32客户端 . 我们想用.NET版本替换原生.dll . 所以我们已经构建了.NET DLL和COM注册它 . 我们有本机C测试客户端,能够处理从旧的.dll到新的交换,但是......似乎我们需要重新编译它们才能工作 . 我们需要重新编译测试客户端,还是我们做错了什么? 我们不能要求我们的客户重新编译他们的客户 .
  • 0 votes
     answers
     views

    Delphi .Net dll部署(在另一台PC上)

    我开发了使用.Net dll(用C#编写)的Delphi应用程序,它使用另一个.Net dll(可能是C#) . 让我给他们命名A.dll和B.dll . 我有A.dll的源代码但不是B.dll的源代码 . 我不能使用Delphi应用程序中的B.dll,因为B.dll只是为C#应用程序编写的(即没有COM互操作)所以我使用我的A.dll与B.dll一起工作 . B.dll创建2个管道来与A.dll...
  • 1 votes
     answers
     views

    Web.config maxRequestLength被忽略,只有maxAllowedContentLength有效

    我已经搜索了一段时间,但似乎无法找到任何与我面临的具体情况有关的事情 . 我把maxRequestLength设置为5MB就像这样...... <httpRuntime maxRequestLength="5120"/> 然后我将maxAllowedContentLength设置为20MB ... <requestLimits maxAllowedConte...

热门问题