我有一个遗留项目,其中 MSVC 编译的 Windows 服务接受来自 C++Builder 编译的 Windows 服务的 RPC 通信。 MSVC 的 MIDL 编译器生成一些 C 代码以启用 RPC 通信。 我正在从 BCB v6 更新到 BCB v11.1.5(clang 编译器),并将 ...
我有一个遗留项目,其中 MSVC 编译的 Windows 服务接受来自 C++Builder 编译的 Windows 服务的 RPC 通信。 MSVC 的 MIDL 编译器生成一些 C 代码以启用 RPC 通信。 我正在从 BCB v6 更新到 BCB v11.1.5(clang 编译器),并将 ...
我在 vs2022 中编辑 .IDL 文件( Example1.Idl )时遇到问题。 我从这个视频中实现了 RPC 示例,它运行良好,当我编辑和编译 IDL 文件时,构建成功但程序不起作用,我必须删除 IDL 并制作新的并编译才能正常工作。 有没有人知道如何在不删除的情况下编辑 IDL 才能正常工 ...
对于 C#,XAML 转译为.cs (*.g.cs) 文件,不需要 IDL 文件。 同样在 C++ 中,为什么 XAML 不能转译为.cpp (*.g.cpp) 文件并且根本不需要任何 IDL 文件? 我不明白。 ...
我想将IShellItemArray传递给驻留在 exe 中的进程外 COM object。 我更喜欢在创建自己的接口之前使用现有接口,所以我想我会尝试让进程外 object 实现IShellExtInit 。 看起来很合身。 无论如何,对于进程外 COM 服务器,尝试为IShellExtInit创 ...
当我使用 bazel 从 midl 文件生成 c++ header 源代码和 winmd 文件时,我发现 MyType.winmd 文件位于 output 文件夹中,而 My.Type 位于 My.Type 文件夹中我想要的是我生成的 header 文件与 MyType.winmd 文件位于同一文件 ...
这有点像How to use midlrt.exe to compile.idl to.winmd? 我的 CMakeLists.txt 中有这个。 我的问题不是关于 CMake 逻辑,而是关于 midl 和 cppwinrt 命令的 output,以及随后的编译和链接错误。 我怀疑我可能缺少一些命 ...
我按照这里的描述做了 IDL 文件构建中的 output 依赖于许多标头,因此它需要跟踪这些标头是否已更改以确定是否应该重建类型库。 但是,当您更改文件并按下“构建”时,VS2017 中的项目不会重建。 需要推动“重建”。 如何跟踪文件更改? ...
我正在尝试使用cpp_quote 属性将一些 C++ 代码添加到来自 MIDL 编译器的生成头文件中。 但是没有任何内容添加到生成的输出中,我不知道为什么。 我使用带有 C++/WinRT 扩展的 VS 2019,该项目是一个带有默认配置的 C++/WinRT 项目。 输入 IDL 文件: ...
我正在尝试在 win32 应用程序中实现 IVector。 编译器总是给我这个我无法摆脱的 MIDL 断言错误。 这是示例类- 编译这会产生错误 - 错误 C2338 此接口实例尚未由 MIDL 专门化。 这可能是由于忘记了接口类型上的“*”指针、在 idl 文件中省略了必要的“声明”子句 ...
我有一个 64 C++ COM 服务器和一个 C# ZD47C174ED277BDF06CFC72763AB779 客户端。 现在我想将一个结构从服务器传递到客户端,该客户端包含一个 64 位 integer。 我对 MIDL 编译器使用关键字“hyper”,可以看到该字段在 C++ 中为_int ...
在我问主要问题之前,我有两个基于 sockets 的现有客户端/服务器 win32 项目,其中客户端向服务器发送字符串请求并使用套接字函数接收结果作为字符串,即 send()、recv() 服务器代码的一部分(目前仍然基于套接字) 并使用上述功能将请求的数据发送到客户端我从服务器发送的数据 问题是 ...
我正在将一个旧的OCX项目转换为QMake(因为它正在获得我公司的“新”标准)。 在我的Button.pro文件中,通过以下方式添加MIDL编译器: .pro文件还提到我有一个RC文件 此RC文件包含此tlb文件的TYPELIB,这意味着它必须在 rc.exe运行之前可用 ...
背景:我需要构建Windows Runtime Component作为系统的一部分,该系统已设置为使用CMake生成其构建系统。 作为准备步骤,我尝试在命令行上构建它。 从基本的.idl文件(MyType.idl)开始 namespace NS { [default_inte ...
在今年的Build Talk C ++ / WinRT 2.0:更快,更智能的公开方式中 ,Kenny Kerr演示了IDL中[noexcept]属性的使用,通过在ABI中隐藏异常处理为编译器提供了更好的优化机会。 但是,我自己尝试一下,最终遇到MIDL编译器错误。 以下精简的IDL文件 ...
简洁版本 使用IMetadataImport时,如何从*.winmd文件获取接口的接口标识符(IID)? 例如Windows.Globalization.ICalendar : {CA30221D-86D9-40FB-A26B-D44EB7CF08EA} 较长的版本 Wi ...
简洁版本 使用IMetadataImport时,如何从*.winmd文件中获取与枚举关联的数值? 一个很好的例子是ApplicationHighContrastAdjustment枚举: 大多数枚举是0, 1, 2, ... 但是,这个枚举成员还指定了其他值: 0 ...
WinMD是二进制的元数据文件,其中包含您需要了解有关本机WinRT dll中可用的名称空间,类型,类,方法和参数的所有信息。 从Windows运行时设计 : Windows运行时使用API元数据(.winmd文件)公开。 这是.NET框架(Ecma-335)使用的相同格式 ...
我有 WINdows 10 和 Visual Studio 2015 Update 3 工作正常。 在安装 Visual Studio 2017 15.9.5 之前,我看到以下内容:我从 CMD "c:\\Program Files (x86)\\Microsoft Visual Studio 14 ...
我有一个非常简单的程序,在尝试将其进一步扩展之前,尝试对其进行编译。 我正在尝试学习COM,因此在此之后 ,我将在VS 2017中使用ATL模板创建app.h和app.cpp文件。 当我尝试构建解决方案时,出现很多MIDL 200重新定义错误。 更新 (基于@Roman R.的响应)请 ...
我需要将一些IDL文件转换为C#类/接口。 我无法获取MIDL.exe编译器。 我正在运行Windows 10,并且我的计算机上安装了几个Visual Studio版本,我也下载并安装了Microsoft SDK,但是在任何地方都找不到MIDL.exe二进制文件。 C:\\ P ...