相关疑难解决方法(0)

将TLB导入C#

我想将类型库(tlb)导入C#.

如何.tlb.cs代码导入代码文件?


Borland Delphi可以使用命令行工具导入.tlb到:.pastlibimp.exe

C:\Develop>tlibimp.exe SopQuotingEngineActiveX.tlb
Borland TLIBIMP Version 5.1  Copyright (c) 1997, 2000 Inprise Corporation
Type library loaded...
Created C:\Develop\SopQuotingEngineActiveX_TLB.dcr
Created C:\Develop\SopQuotingEngineActiveX_TLB.pas
Run Code Online (Sandbox Code Playgroud)

现在有一个.pas源代码文件,包含常量,枚举,接口,它们位于已编译的Type Library(tlb)文件中:

SopQuotingEngineActiveX_TLB.pas:

unit SopQuotingEngineActiveX_TLB;

interface
...
const
   CLASS_XSopQuotingEngine: TGUID = '{3A46FFB8-8092-4920-AEE4-0A1AAACF81A0}';
...

// *********************************************************************//
// Interface: IXSopQuotingEngine
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {AA3B73CC-8ED6-4261-AB68-E6AE154D7D52}
// *********************************************************************//
  IXSopQuotingEngine = interface(IDispatch)
    ['{AA3B73CC-8ED6-4261-AB68-E6AE154D7D52}']
    procedure OnStartPage(const AScriptingContext: IUnknown); safecall;
    procedure OnEndPage; safecall;
    procedure Connect(const ConnectionString: WideString); safecall; …
Run Code Online (Sandbox Code Playgroud)

c# com typelib

8
推荐指数
1
解决办法
2万
查看次数

当MIDL无法创建tlb时,您会怎么做?

我正在尝试创建一个C#inproc服务器sbtsv.idl(它包含在Windows 8 SDK中).找到的几乎所有指令都会告诉您使用MIDL创建.tlb文件然后tlbimport创建代理dll.

但是,如果IDL不包含某个library部分,则不会生成任何.tlb文件,sbtsv.idl也不包含library部分.

我尝试创建自己的IDL文件,声明我想在库中创建的接口

#include "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include\sbtsv.idl"

[uuid(43250D0C-BBC6-4109-BCD2-6F61F0D3B611)]
library sbtsvClientLib
{
    interface ITsSbResourceNotification;
};
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试运行它时,MIDL我得到以下错误

Microsoft (R) 32b/64b MIDL Compiler Version 8.00.0603  
Copyright (c) Microsoft Corporation. All rights reserved.  
Processing .\sbtsvClientLib.idl  
sbtsvClientLib.idl  
Processing C:\Program Files (x86)\Windows Kits\8.1\include\um\oaidl.idl  
oaidl.idl  
Processing C:\Program Files (x86)\Windows Kits\8.1\include\um\objidl.idl  
objidl.idl  
Processing C:\Program Files (x86)\Windows Kits\8.1\include\um\unknwn.idl  
unknwn.idl  
Processing C:\Program …

c# idl midl tlbimp

5
推荐指数
1
解决办法
2346
查看次数

访问P/Invoke的Windows API常量和结构

快速提问:如何从.NET访问为Win32 API定义的BN_CLICKED常量和其他常量?它们是否在某些图书馆中定义?我必须自己定义吗?如果是这样,我在哪里可以找到这些值?Windows版本之间的值是否为特定于版本的值?

.net c# winapi

4
推荐指数
2
解决办法
4948
查看次数

标签 统计

c# ×3

.net ×1

com ×1

idl ×1

midl ×1

tlbimp ×1

typelib ×1

winapi ×1