什么是Delphi上的vb.NET“ Interop用户控件”的等效项?

Inf87_Dev

我正在尝试使用事件/方法/程序制作的应用程序,该应用程序应从第三方应用程序中获取。这个应用程式必须是active X

我有一个可行的示例VB.NET,我需要在Delphi上做一个相同的示例

vb.net单位始于:

<ComClass(InteropUserControl.ClassId, InteropUserControl.InterfaceId, InteropUserControl.EventsId)> _
Public Class InteropUserControl

在DELPHI上这是否完全必要?这仅用于在Windows上注册COM类吗?

另外,使用的功能是:

Public Event msgPlugIn(ByRef Msg As String, ByRef MsgResponse As String)

稍后将其称为:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim Msg As String
    Dim Response As String = ""
    Msg = "<ID><infoRequest/></ID>"
    RaiseEvent MsgPlugIn(Msg, Response)
    rtb1.Text = Response
    //rtb1 is a regular label
End Sub

Onclick是常规按钮吗?

我需要在Delphi中完成此操作,但是我尝试了所有操作Automation ObjectCOM Object..但第三方应用程序却无能为力。

新信息:

我制作了一个活动库,并添加了一个COM对象并创建了一个过程:

    unit DataExchange;

    {$WARN SYMBOL_PLATFORM OFF}

    interface

uses
  Windows, ActiveX, Classes, ComObj, TEST_2_TLB, StdVcl, dialogs;

type
  TDataExchange = class(TTypedComObject, IDataExchange)
  protected
    procedure MENSAJE(out DATA: WideString); stdcall;
  end;

implementation

uses ComServ;
    
procedure TDataExchange.MENSAJE(out DATA: WideString);
begin
  showmessage(DATA);
end;

initialization
  TTypedComObjectFactory.Create(ComServer, TDataExchange, Class_DataExchange,
    ciMultiInstance, tmApartment);
end.

我创建了一个客户端来读取以这种方式调用的dll:

procedure MENSAJE(out DATA: WideString); external 'TEST__2.ocx';

procedure TForm2.btn1Click(Sender: TObject);
var
texto : WideString;
begin
 texto := edt1.Text;
  MENSAJE (texto);
end;

然后,当我执行客户端时,出现错误:

the Procedure entry point 信息could not be located in the dynamic library TEST__2.ocx

如果直接在库单元上创建此过程,则它会起作用,如下所示:

library TEST__2;

uses
  ComServ,dialogs,
  TEST_2_TLB in 'TEST_2_TLB.pas',
  MAINFORM in 'MAINFORM.pas' {SuperActiveFORM: TActiveForm} {SuperActiveFORM: CoClass},
  DataExchange in 'DataExchange.pas' {DataExchange: CoClass};


{$E ocx}

procedure MENSAJE(out DATA: WideString); stdcall;
begin
  showmessage(DATA);
end;

exports
  DllGetClassObject,
  DllCanUnloadNow,
  DllRegisterServer,
  DllUnregisterServer,
  DllInstall,

  Mensaje;



{$R *.TLB}

{$R *.RES}

begin
end.

关键是,如果我在单元中创建了过程,就让它编写了它。在COM对象中,我通过ridl文件将其添加到接口中,并添加了一个方法。

雷米·勒博(Remy Lebeau)

一个COM对象的内部的ActiveX库是揭露功能之外的应用程序正确的做法。您的测试客户端失败了,因为您根本没有加载COM对象,您尝试访问独立功能,但实际上没有任何功能。您必须使用regsvr32.exe注册已编译的DLL ,然后客户端应用程序可以用来CoCreateInstance/Ex()在需要时实例化COM对象,调用该对象上的方法并为其分配事件处理程序。

http://www.techvanguards.com,恕我直言,这是Delphi(和C ++ Builder)更好的COM教程之一

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

什么是Windows命令“查看用户帐户详细信息”的samba等效项NET USER [/ DOMAIN]

来自分类Dev

VB.NET用户控件删除主窗体控件

来自分类Dev

vb.net中“ propfull”快捷方式的等效项是什么

来自分类Dev

vb.net listview 上的分页项

来自分类Dev

什么是ASP.NET MVC中的WebApi [FromUri]等效项?

来自分类Dev

.NET(C#)的JSSE等效项是什么?

来自分类Dev

.NET的DateTime.Date属性的JavaScript等效项是什么?

来自分类Dev

VB.NET中的C#Webforms用户控件

来自分类Dev

什么是 VB.Net 等效于以下内容

来自分类Dev

需要vb.net上vb上的等效screen.width和screen.height

来自分类Dev

销毁控件VB.net

来自分类Dev

VB.NET PictureBox /控件

来自分类Dev

NET中ServletContextListener的等效项

来自分类Dev

将C#Ctor转换为Vb.Net等效项

来自分类Dev

如何在ASP.NET中动态创建的用户控件上找到控件?

来自分类Dev

如何在ASP.NET中动态创建的用户控件上找到控件?

来自分类Dev

.NETStandard 1.0 / .NET Core中的Type.GetGenericArguments()等效项是什么?

来自分类Dev

什么是Org.BouncyCastle.Math.BigInteger.ToByteArrayUnsigned的.NET System.Numerics.BigInteger等效项?

来自分类Dev

什么是ASP.NET 5中的System.Web.Mvc.Html.InputExtensions等效项?

来自分类Dev

.NET Core中的[Serializable]等效项是什么?(转换项目)

来自分类Dev

docker run命令中的docker参数--net = container:ReportWeb的docker-compose等效项是什么

来自分类Dev

PHP / CodeIgniter中的ASP.NET [Authorize]等效项是什么?

来自分类Dev

什么是Org.BouncyCastle.Math.BigInteger.ToByteArrayUnsigned的.NET System.Numerics.BigInteger等效项?

来自分类Dev

什么是Excel VBA范围-> ClearContents的.Net(C#)Apose.Cells等效项?

来自分类Dev

什么是IElasticSearchResponse.NumberOfRetries的Elasticsearch.Net 2.x等效项?

来自分类Dev

@Html.IsSelected 的 ASP.NET Core 等效项是什么

来自分类Dev

可以悬停并可以附加到vb.net中的表单的用户控件

来自分类Dev

用户更新控件时(VB.NET Winforms)绑定源未更新

来自分类Dev

VB.net中CreateObject的等效代码

Related 相关文章

  1. 1

    什么是Windows命令“查看用户帐户详细信息”的samba等效项NET USER [/ DOMAIN]

  2. 2

    VB.NET用户控件删除主窗体控件

  3. 3

    vb.net中“ propfull”快捷方式的等效项是什么

  4. 4

    vb.net listview 上的分页项

  5. 5

    什么是ASP.NET MVC中的WebApi [FromUri]等效项?

  6. 6

    .NET(C#)的JSSE等效项是什么?

  7. 7

    .NET的DateTime.Date属性的JavaScript等效项是什么?

  8. 8

    VB.NET中的C#Webforms用户控件

  9. 9

    什么是 VB.Net 等效于以下内容

  10. 10

    需要vb.net上vb上的等效screen.width和screen.height

  11. 11

    销毁控件VB.net

  12. 12

    VB.NET PictureBox /控件

  13. 13

    NET中ServletContextListener的等效项

  14. 14

    将C#Ctor转换为Vb.Net等效项

  15. 15

    如何在ASP.NET中动态创建的用户控件上找到控件?

  16. 16

    如何在ASP.NET中动态创建的用户控件上找到控件?

  17. 17

    .NETStandard 1.0 / .NET Core中的Type.GetGenericArguments()等效项是什么?

  18. 18

    什么是Org.BouncyCastle.Math.BigInteger.ToByteArrayUnsigned的.NET System.Numerics.BigInteger等效项?

  19. 19

    什么是ASP.NET 5中的System.Web.Mvc.Html.InputExtensions等效项?

  20. 20

    .NET Core中的[Serializable]等效项是什么?(转换项目)

  21. 21

    docker run命令中的docker参数--net = container:ReportWeb的docker-compose等效项是什么

  22. 22

    PHP / CodeIgniter中的ASP.NET [Authorize]等效项是什么?

  23. 23

    什么是Org.BouncyCastle.Math.BigInteger.ToByteArrayUnsigned的.NET System.Numerics.BigInteger等效项?

  24. 24

    什么是Excel VBA范围-> ClearContents的.Net(C#)Apose.Cells等效项?

  25. 25

    什么是IElasticSearchResponse.NumberOfRetries的Elasticsearch.Net 2.x等效项?

  26. 26

    @Html.IsSelected 的 ASP.NET Core 等效项是什么

  27. 27

    可以悬停并可以附加到vb.net中的表单的用户控件

  28. 28

    用户更新控件时(VB.NET Winforms)绑定源未更新

  29. 29

    VB.net中CreateObject的等效代码

热门标签

归档