gpt4 book ai didi

c# - 当使用管理包装器取消管理 C++ DLL 时,.net 是否创建任何临时 C# 文件

转载 作者:行者123 更新时间:2023-11-28 06:47:11 24 4
gpt4 key购买 nike

通常当我们需要在C#程序中使用原生C++ DLL时,写一个manage wrapper是实现它的方式。在这样的程序中,如果我在 DLL 函数调用上按 F12(转到函数定义),它将转到一个 C# 文件,该文件看起来所有函数都在前向声明。我检查了这个文件的位置,它存在于 Windows 临时目录中。

所以我的问题是,当我们在 C# 程序中通过管理包装器使用 C++ 非管理 DLL 时,.NET 框架(或任何其他组件)是否会创建任何与 DLL 中的接口(interface)类相关的临时 C# 类?

最佳答案

没有“临时 C# 文件”。如果您使用 Go to Definition 并且 IDE 只有该定义的程序集引用,那么它无法找到该定义的源代码文件。因此它自动从引用程序集中的元数据中生成一个。这看起来与源代码文件非常相似,但当然没有任何注释,也没有类的代码。它无法编译。它也在 C# 中,即使原始程序集是从 C++/CLI 或 VB.NET 代码创建的。

不错的功能,但不要将其混淆。如果您希望 IDE 将您带到实际的源代码文件,那么您需要该库的项目引用,而不是程序集引用。

关于c# - 当使用管理包装器取消管理 C++ DLL 时,.net 是否创建任何临时 C# 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24753786/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com