最近我在工作中听到很多关于COM的事情。我还了解到COM是旧的。COM已被弃用。COM没有未来。这些也是真的吗
我想学习COM,因为我想知道它有什么大惊小怪之处,但我无法说服自己,这是花这么多时间学习它的一个坚实理由
那么,有谁能告诉我:
我为什么要学习COM
一旦我学会了COM,我可以用它做什么?我指的是它的应用
学习COM(或至少熟悉其概念)意味着您可以与数千个现有组件集成,包括Microsoft Word和Excel
我主要在Java领域工作,但对COM有一点了解意味着我可以有效地与Wor
我在经典ASP中遇到内存不足错误,可能是在尝试访问数据的地方。例如:
Microsoft VBScript compilation error '800a03e9'
Out of memory
(some file) Line 0
这些错误只会偶尔发生一次,并且会持续发生几分钟,然后Web服务器必须重新启动应用程序池,因为所有会话都会丢失
在大量使用ADO进行数据访问和一些其他现成的COM对象的经典ASP应用程序中,什么是查找/诊断内存泄漏的好工具
可能任何内存泄漏都来自COM对象,而不是
我正在处理一个.Net windows应用程序,它在内部使用COM dll。
在以下4种释放COM对象的方法中,哪一种是最好的
1.
if (obj != null)
{
Marshal.ReleaseComObject(obj);
}
2.
if (obj != null)
{
Marshal.ReleaseCom
标签: Com
Wix
registrydllregistrationheat
我们在VB.NET中开发了一个COM组件(我们称之为MyLib),供Access应用程序(我们称之为MyApp)使用。为此,我们需要使用生成的MyLib.dll和MyLib.tlb文件进行COM注册。当我将这两个文件安装到MyApp的文件夹中时,一切正常,COM函数被正确调用。然而,当我将dll安装到一个公共文件夹中时,我在标题中提到了一个错误-我这样做的原因是因为我们希望允许在同一台机器上安装不同版本的MyApp。因此,如果COM组件没有更改,我们当然希望在这些不同版本之间共享它,并让Wind
标签: Com
systemcom-interop
我有这样的客户端代码:
Dim server as Object
Set server = CreateObject("some-prog-id")
exe中的服务器已启动,由于某些原因,它会不时挂起。我必须在taskmanager中杀死它才能让我的客户活着。
我想在时间到期时自动杀死exe进程中的服务器,但不知道如何正确获取它的ID。实际上我知道进程名称,但可能有几个进程具有以前启动的相同名称
如何确定由客户端代码启动的进程 简单的回答是你不能。它是由process server或dllho
情况是这样的。我运行Labview并通过ActiveX托盘调用我的COM对象方法。它工作了,我用调试器遍历我的代码
但当我开始使用(取消注释)侧dll中的代码时,我在Labview中看到“类未注册”错误。我的附加dll及其依赖项位于单独的目录中。所以我尝试将PATH环境变量设置为这个目录,然后运行Labview。但它仍然不起作用
所以问题是如何调试这种情况?我查看了事件记录器,但没有发现任何相关内容
我在C++中创建了自己的合成应用程序,它也调用了与LabVIEW相同的方法。它可以工作。问题出在
我有另一个进程B,它创建用dll编写的com类的实例。
我想使用这个实例从COM类调用方法,但是这些方法应该在进程A中执行。目前它们正在进程B中运行
当我从com类而不是dll创建exe时,com类的方法在不同的进程中执行
但是我不能为com类创建单独的“exe”。我希望它们在运行时加载到进程a中的dll中。使用运行对象表来实现进程间通信 使用运行对象表实现进程间通信。
我已经编写了一个外部应用程序,用一个为COM注册的dll驱动autocad。我已经按照以下步骤编写了我的应用程序,但是我用AddNumbers()方法替换了以下代码:
但是,当我运行应用程序时,autocad软件会立即打开然后关闭,并显示此错误消息:调用目标已引发异常
但是,如果我对以下代码行进行注释,应用程序将正常工作,不会出现任何错误:
doc = dm.Open(MyDWGFilePath, false);
Application.DocumentManager.MdiActiveDocu
我有一个第三方COM组件,它不能在Windows 8上工作,但如果在Windows 8上以Windows 7兼容模式运行,它将工作得非常好。但是,我不希望软件在兼容模式下运行,只希望COM组件。可能吗
顺便说一句,不可能获得COM组件的更新/工作版本
谢谢兼容性模式一次适用于整个流程。执行您所要求的操作的唯一方法是在不同的容器进程中运行COM对象,可以使用DCOM(如果COM对象的接口具有必要的存根和代理注册以用作进程外对象),也可以编写自己的远程处理层
我已经为ActiveX控件开发了一个集成。问题是,在开发过程中,创建了一个新的构建,这意味着存在不同的ActiveX类ID
有没有办法在不联系开发人员的情况下确定COM对象的程序ID和ActiveX类ID
通过在线研究,我找到了对OLE/COM对象查看器的引用,但除了扩展每个节点之外,似乎没有任何方法进行搜索
提前感谢您的建议。如果您有COM服务器的类型库,并且可以使用Oleview.exe查看它,您当然可以看到CLSID。您不必查看树中的每个节点,只有coclass节点是相关的
但是,您无法在
MonoProject或Xamarin studio是否支持Microsoft的COM技术?我想知道我是否可以在mono中使用ole32.dll。我已经可以为.net使用一些dll,但是当使用依赖ole32.dll的其他dll时,我会遇到一个找不到的异常。否
Mono 1.0和Mono 1.1.xx不支持COM,这是一个已知的
缺少单声道的功能。支持MS COM的初步工作已经开始
在窗户上。长期目标是支持各种非托管服务
组件技术包括MS COM、XPCOM和UNO
我正在编写一个基于DirectX 11的引擎。
其中所有DirectX Com对象都包装在Microsoft::WRL::ComPtr中。
但不幸的是,当我在关机时调用ID3D11Debug::ReportLiveDeviceObjects时,它报告的对象数更多,超过1个对象的引用计数不为零
我很困惑,到底是哪一个代码增加了引用计数,最终阻止了引用为零。例如,我在代码中提供了ID3D11ShaderResourceView的以下示例用法:
ID3D11ShaderResourceView在我的呈
我有一个我正在开发的项目,它使用第三方COM库作为参考,我想在VisualStudioTeamServices构建客户端上构建这个项目。我的第一个想法是创建一个MSBuild任务,该任务检查COM库是否安装在本地计算机上,如果没有安装,则继续安装,但这似乎是一种非常麻烦的方法。我四处搜索过,但似乎所有的答案都可以追溯到几年前,我似乎无法让我在VS2013项目中找到的少数答案发挥作用。其他人是如何解决这个问题的?有没有更干净的方法
作为参考,我也尝试过,看起来非常干净,但没有效果。我会选择以下路线
正在寻找查找类型库的依赖类型库的方法。例如,在IDL中声明依赖库时,公共依赖项为stdole2.tlb,并声明为:
importlib(“stdole2.tlb”)
我可以使用OleView.exe来查看这些依赖项,但我正在试图找出如何在代码中实现这一点。ITypeLib或ITypeLib2接口中似乎没有任何成员可以获取这些依赖项。我已经浏览了OLE Automation参考资料,但还没有找到获取接口的方法
它们在某种程度上是类型库的二进制资源格式吗
有人能给我指出正确的方向吗?这里是类型库的G
我日常工作的一部分是维护和扩展遗留的VB6应用程序。通用引擎是用C/C++编写的,VB6使用这些函数来提高性能
说到异步编程,C接口是不够的,我们依靠COM控件向VB6触发事件
我的问题是,当我在VB6中注册控件时,VB会将该控件加载到内存中,直到我退出VB6 IDE时才会卸载它。由于控件一直在加载,我无法在VC6中重新编译它,因为DLL文件已锁定
我找到的解决方案不是在VB中启用该控件,而是将CreateObject()与我的控件的全名一起使用。问题是,我必须将我的控件声明为对象,因为VB6对
在Powershell中,我可以创建COM对象,例如用于控制Microsoft Office应用程序:
$excel = New-Object -com "Excel.Application"
$excel.visible = $true
如何列出可以在Powershell中创建的所有可用COM对象?我发现了这个Powershell一行脚本,它应该列出所有COM对象
gci HKLM:\Software\Classes -ea 0| ? {$_.PSChildName -match '^\w+
我正在尝试编写ActiveX控件,并注意到我似乎无法在Visual Basic(6.0)中创建ActiveX控件,该控件的功能稍微复杂一些。标签、按钮和复选框等简单控件似乎工作正常,但只要我尝试将树控件等添加到表单中,ActiveX控件就会在我将其嵌入另一台计算机上的某个主机应用程序时保持完全空白。不过,它在我的开发盒上运行良好
在浏览Projects->Components(Ctrl+T)列表时,我发现两个库显然包含一个树控件:
Microsoft Windows通用控件5.0(SP2)
M
当您拥有COM服务器的源代码时,将其加载到VS20xx中,并将.NET应用程序设置为要启动的程序。在类创建函数和COM服务器接口的方法中添加断点
运行程序时,VS可能会声明程序没有调试信息。忽略这一点,COM服务器具有调试信息。在不使用调试器的情况下启动客户端,然后在调试器设置中选择“本机代码”附加调试器
标签: Com
staticactivexvstoout-of-process
很难解释我们的处境
我们有一个三层应用程序。引擎是一个用C++编码的DLL,然后我们有一个VB6 ActiveX EXE,通过API调用访问引擎,在顶层,我们有一个Excel Adin(在C VI中使用VSTO框架)调用中间层带有一个互操作DLL。此时,从加载项到引擎的每个“连接”都会创建一个新的EXE(VB6使用API调用来访问引擎),并且一切正常。
现在我们将中间层移动到.NET,它“大概”运行良好(它通过了所有的单元测试),但是,当我们同时打开2个“连接”时,我们发现了一个错误(ups,没
我的申请有一个严重的问题。我有一个本机应用程序,它使用一些托管类来工作。我创建了一个C++\Cli包装器,它是非托管代码和托管代码之间的代理
在这个代理项目中,我声明了一些公开的COM对象,它们的实现使用托管程序集中声明的C#对象
在我的开发环境中一切正常,但当我想在干净的系统上安装我的应用程序时,问题就出现了
我有一个MSI项目,应该使用vsdraCOM或vsdraCOMRelativePath注册此CLR代理。事实上,它们都不起作用。应用程序显示未注册特定对象(在此代理中定义)的错误
我可以
从应用程序中的GRF文件加载Directshow IFilterGraphs对于在DLL中全局注册的普通筛选器来说效果很好
// open structured storage file...
hr = pStorage->OpenStream(L"ActiveMovieGraph", 0, STGM_READ | STGM_SHARE_EXCLUSIVE, 0, &pStream);
if (SUCCEEDED(hr)) {
hr = pPersistSt
我有一个VB客户端应用程序,它调用VB进程内COM服务器myprogressbar
(是的,这是VB调用VB的一种反常方式,但客户端是一个测试工具-在生产代码中,客户端不是VB,需要使用COM)
此操作失败并出现错误
System.Exception:无法创建ActiveX组件
x86服务器已(成功)注册到
并且x64服务器已(成功)注册到
更新:编译为任何CPU的单个服务器也会发生同样的情况。以前关于x86版本运行的任何报告都只涉及到仍在注册的以前的安装。解决了这个问题
问题是.NET程序集,
标签: Com
windows-server-2008adsi
我确实在微软论坛上问过这个问题,但没有得到任何答复。我在这里提问,希望得到答案。我的问题详述如下
我有一个C#应用程序,它使用ADSI API管理用户的广告。为了管理用户的密码,我使用Interop.ActiveDs.dll的IADsUser.SetPassword(字符串NewPassword)
我面临的问题只有在Windows 2008 enterprise SP2操作系统上安装域控制器时才会出现。它在Windows 2008 R2上不可复制
当我尝试逐个用户设置密码时,根本没有问题。但是,
标签: Com
access-violationshell32pageheap
当我为测试中的进程启用页面堆时,它会触发访问冲突,这向我指示在调用SHGetFileInfo时发生了某种类型的堆损坏
调用堆栈的顶部显示msvcr90!wcspbrk并向下走,它在ole32中显示COM相关的项目,直到到达shell32,我们称之为SHGetFileInfo
从我在网上发现的情况来看,使用shell32的古怪的一个常见问题不是首先调用CoInitialize/coInitializeX,但此时已经调用了coInitializeX(),在下面代码之前调用它只会返回S_FALSE
下
标签: Com
directshowequality
我在COM中实现了一些东西,我在其中新建了一些对象(本例中为FilterGraph IFilters),每次新建另一个对象时,我都想遍历前面的列表,看看我要添加的对象是否“已经在图上”(已经在列表中)。我的第一个想法是使用指针相等(不起作用)。然后我想用CLSID进行比较
有没有办法从“任意”COM对象获取CLSID
我能找到的最接近的是:从显示名的子字符串中更新guid
和(使用CreateObject,但我使用的是EnumMoniker而不是CreateObject)
(注意,我发现IBa
标签: Com
registrywindows-shell
我为Windows构建了一个虚拟文件系统(不是名称空间扩展),它充当由文件和文件夹组成的文档管理服务器的前端。为了能够在Windows资源管理器中将DMS对象的一些元数据显示为其他可选列,我通过实现COM属性处理程序成功地向Windows属性系统提供了属性。当普通属性处理程序专注于他们认为负责的特定文件类型时,“我的属性处理程序”会将属性添加到所有文件中,而不管其类型如何。因为属性处理程序只能在文件类型级别注册,所以我在
HKLM\SOFTWARE\Microsoft\Windows\Curre
据我所知,隔离是每个进程,而不是每个模块。因此,应用程序清单中的任何内容都适用于从该应用程序启动的任何进程
想想CoCreateInstance需要做些什么来支持reg free COM—它需要以某种方式找到清单文件,如果它存在,就不要去注册表获取激活信息
因为CoCreateInstance没有参数告诉它清单的路径,所以它需要从上下文派生它
对于.DLL没有真正的上下文,但是对于.EXE,当前进程句柄可用于派生可执行文件的路径,等等,所以我怀疑他们就是这样做的
嗨,
我正在客户端计算机上部署VB6应用程序。应用程序需要从C#.NET dll访问代码。我创建了一个.NETDLL的COM对象,并使用VB6使用并行版本控制(免注册COM)。它在开发机器上运行良好
但在客户端计算机上,它抛出了一个错误“ActiveX组件无法创建对象”
我创建了两个清单文件,一个用于VB应用程序,另一个用于C#应用程序。
我通过VisualStudio2008将C#manifest文件嵌入到C#.NET dll中
我错过了一些步骤。
请帮帮我。
提前感谢。您是否在GAC中注册了
Matlab提供了一个COM接口,支持远程执行任意函数(和代码段)。特别是,它有一个调用给定Matlab函数的Feval方法。此方法的第三个参数pvarArgOut具有COM类型VARIANT*,并作为以下类型的参数出现在Visual Studio F#editor中:
pvarArgOut: byref<obj>
这段代码编译得很好,但在调用interp1时,我遇到一个COM异常:
A first chance exception of type 'System.Reflecti
我已经用VB编写了一些代码,用于验证Windows防火墙中的某个特定端口是否打开,并以其他方式打开一个端口。该代码使用对三个COM DLL的引用。我编写了一个WindowsFirewall类,它导入DLL定义的主命名空间。在WindowsFirewall类的成员中,我构造了由引用的DLL定义的一些类型。下面的代码不是整个类,但演示了我正在做的事情
Imports NetFwTypeLib
Public Class WindowsFirewall
Public Shared Functio
当我使用MIDL将IDL文件编译为.h和.c时,我得到一个错误,上面写着:
midl:命令行错误MIDL1004:无法执行C预处理器cl.exe。
请帮助我,我不知道为什么
我使用的MIDL编译器是VC++6.0的一部分
谢谢。看来您的环境设置不正确。编译之前,请尝试调用vcvars32
标签: Com
Vb6
com-interopvb6-migration
我的问题是:
a。这似乎是正确的方式吗
b。在VisualStudio 2010中,如何在C++中创建COM.DLL?我尝试创建一个简单的.dll,使用tlbexp生成一个.tlb文件,但这似乎不起作用。我可以将我的.tlb拉入VB5项目,但没有要实例化的类。如果尝试使用regsvr32注册.dll,则会出现“无入口点”错误
我在VS2005中看到了一个选项“注册COM互操作”,但在VS2010中我还没有找到一个等价的选项
提前感谢您的帮助 您必须创建一个ATL项目:
然后将COM对象添加到组件
标签: Com
reverse-engineeringvtabledisassemblyida
这就是我想要实现的目标。我识别了一个我定义为存储类数据的结构的类。类的其中一个方法使用类字段,就好像它是指向vtable的指针一样
int __thiscall SignOn(struc_4 *this)
{
v1 = this;
if ( !v1->vtable_40194AE0 )
return E_UNEXPECTED;
v1->field_3E8 = 0;
if ( !sub_686F7193(v1) )
return (*(*v1->v
我想在Windows上创建一个ISO映像,也就是一个.ISO文件。这可以使用COM组件实现,我在中找到了有关如何使用PowerShell实现这一点的说明
在第3步之后,这些说明说“在这一步中,您可以停止并将结果图像保存到本地硬盘,这将是一个纯iso图像。”
我的问题:如何在PowerShell中获取$resultStream,即从检索中得到的COM对象,并将其内容保存到文件中?您需要使用FileStream writer。请查看此链接,了解如何在c#中执行此操作的示例。
该函数可用于创建帮助您
WMI中使用COM API的WQL查询返回SWbemObjectSet。由此,我们可以使用该方法对集合中的所有对象进行迭代,从而产生许多。它们有一个属性属性,返回一个
此对象有一个Count属性,但没有ItemIndex方法,而只有一个Item方法,该方法获取属性的字符串名称。我想迭代所有可用的属性,因此我没有可用的名称。我尝试调用ItemIndex方法,但(根据文档)此对象上不存在该方法。有许多VBScript文档对object.Properties中的每个道具执行类似于的操作,因此我认为这是
我正在旧版VB6应用程序中引用MSXML6(MSXML6.dll)。无论我使用DOMDocument40还是DOMDocument60,我仍然看到msxml4.dll与msxml6.dll一起使用。然而,我在项目中找不到任何其他应该使用的东西,除了我解析一个小配置的地方
为什么我会看到msxml4.dll,因为它没有被项目引用?VB6是否将msxml4用于某些用途?MSXML6在其COM实现中似乎是msxml4的新版本,而不仅仅是作为“营销”版本号
在OLEView中查看两者的IDL可以看到以下
我正在寻找一种“典型”的方式来导航MSDN,让COM类做他们想做的事情
示例问题:我正在寻找一种API方法来解除阻止本地文件(以编程方式从文件中删除internet区域/web标记)
我在stackoverflow.com上找到一篇关于clsid_persistentzoneidentifier的帖子。所以我在MSDN中搜索,找到了。我所寻找的,是一个人在到达这个url后所做的事情。从这个位置,我无法计算操作的顺序。如何将此IZoneIdentifier连接到IPersistFile?等,必须有
我试图从COM dll的序号中获取实际的函数名。我尝试使用dumpbin.exe,但它只返回每个序号的[NONAME](前几个除外)
序号提示RVA名称
21 0 00002439 DLLCANNULOADNOW
25 1 00007F41 DllGetClassObject
116 2 0000539C DllMain
138 3 00008633 DllRegisterServer
176 4 00008640 DllUnregisterServer
1 0009152E[NONAME]
2
今天大部分时间我都在尝试将OCX文件加载到我的一个VB6项目中。我已经尽我所知在注册表中检查COM注册,并且多次尝试在文件上使用REGSVR32,但都没有效果。当我尝试加载组件(在Project-->Components下)时,从VB6得到的所有信息都是无法加载“FilePath\FileName.ocx”。其他人以前见过这个问题吗?如果是的话,有什么办法解决它吗?只是一些帮助隔离问题的提示
使用OleView查看控件
检查名称:如果它是保留字之一,如“菜单”,vb6将无法加载它。(尽管vb6很
大家好
我正在尝试修改MS提供的代码,尝试访问网络适配器配置
当我尝试使用VC++2005访问Mac地址或IPAddress属性im时,它中出现空指针异常。在此处检查//异常:vtProp作为NULL行返回,我在其中获取异常
#define _WIN32_DCOM
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <comdef.h>
#include <Wbemidl.h&
标签: Com
registryregistrationwin32com
我有一个带有自定义注册过程的.NET COM dll,因此它可以在HKEY\U CURRENT\U USER\Software\Classes下注册,与HKEY\U LOCAL\U机器相对。因此有以下键(当前用户是Windows 7 PC上的管理员):
我想从ASP调用COM组件的某些函数。我想知道
How can I create a COM object?.
How can I use VARIANTS to pass to the COM object?
Can I pass reference parameters from ASP to COM object?
What are the limitations of passing reference objects to COM?
我从哪里可以得到更多关于这方面的信息
如何创
标签: Com
chain-of-responsibility
其思想是COM接口有一个主要实现,需要处理不同的MIME类型(MIME只是一个示例)。主要实现处理客户站点上预期的几种常见MIME类型
要处理新的MIME类型,必须实现相同的COM接口,但只针对新的MIME类型(让我们称之为增强COM对象)。客户端首先调用增强的COM对象,该对象处理其MIME类型,或者在无法识别MIME类型时调用主COM对象。我们可以假设,可能不止一个增强的COM实现。因此,存在一系列责任
COM责任链是否可行?它实用吗
谢谢,理论上它可以,但我认为在这里使用工厂模式可能会更好
我不太清楚[in]和[out]如何与传递值和传递引用概念交互。MSDN文档明确指出,[in]表示数据从调用者流向被调用者,数据从被调用者流向调用者需要[out]
然而,有人建议我对调用方可以检索结果的对象使用[in]参数
IDL中的方法定义示例:
HRESULT _stdcall a_method( [in] long *arg1, [in] BSTR arg2, [in] IAnObject *arg3 );
在我的服务器实现此方法时(使用C++),我可以编写:
*arg1 = 20;
ar
标签: Com
variantsafearrayole-automation
鉴于:
{
库姆萨雷;
变异ccv(L“测试”);
sa.添加(ccv,正确);
}
我希望CComSafeArray的dtor会对每个包含的成员调用::VariantClear,文档似乎表明:
在某些情况下,最好在不调用VariantClear的情况下清除代码中的变量。
例如,您可以将VT_I4变体的类型更改为其他类型,而无需调用此
功能BSTR的安全数组将在每个元素上调用SysFreeString而不是VariantClear。
但是,如果收到VT_类型但无法处理,则必须调用Variant
为什么COM服务器被称为“服务器”
服务器通常是运行在机器上的进程,它响应来自客户端的请求
COM“服务器”只是可由正在运行的进程调用的已编译代码文件。它们不应该被称为服务器。从技术上讲,“服务器”只是一个提供服务的程序。因此,在COM中,您有客户机和服务器。当然,今天我们认为HTTP/REST/SOA/micro服务等等,但是COM早在那之前就已经存在了,甚至在“网络”(甚至不说网络间/互联网)这样的明显概念还没有出现之前
让我们引用官方文件:
COM客户机是任何代码或对象都可以获得指向COM
我想使用用户在开始时输入的变量样式将文件另存为
我还需要帮助将数据发送到具有可变份数的打印机
从这里开始,我需要帮助:
ComObjActive("Word.Application").ActiveDocument.SaveAs("L:\10. 2016\TKT Issued\"%Style%")
请看下面的代码,我已经有了
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releas
标签: Com
jscriptoutlook-redemption
我正在编写一个用于修改Outlook文件夹的实用程序脚本。为此,我通过COM接口(Windows脚本主机/JScript)使用v5.14
我有以下两个函数,它们为RDOFolder的所有子文件夹获取一些信息数组:
//枚举RDOF文件夹的所有子文件夹
函数getFolderList(rdoFolder){
如果(!rdoFolder)返回;
返回foldersToArray(rdoFolder.Folders).map(getFolderDetails);
}
//找出有关单个RDOFolder
我发现使用这种语法,我会得到一个编译错误:
importlib("MSADDNDR.dll");
给出的错误是:
error MIDL2337 : unsatisfied forward declaration : _IDTExtensibility2 [ Coclass '_Extension' ]
但那是一种谎言。在前面的输出中,我们看到:
warning MIDL2015 : failed to load tlb in importlib: : MSADDNDR.dll
因此,如果
我发现了一个不错的NFC读卡应用程序,它在winforms中运行得非常好
可在此处找到代码:
吉特:
但我有个问题。我现在需要在com for vb6中实现这一点
我必须“复制”事件挂钩,如下面的代码所示
我成功地向vb6公开了方法和事件
NFC = new NFCReader();
NFC.CardInserted += new NFCReader.CardEventHandlerDelgate(Card_Inserted);
NFC.CardEjected += new NFCReade
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 30 页