问题标签 [mixed-mode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
329 浏览

database - 使用 Berkeley DB 的混合 C++/CLI 代码

我正在尝试在 C++/CLI/clr模式下使用 Berkeley DB。我写了这段代码:

编辑:

代码编译成功,但显示错误输出。我只是托盘存储String^ HexSig="D8B1048900ABFF8B";SigDb.db然后直接读取相同的字符串并打印它!结果不像D8B1048900ABFF8B预期的那样出现,而是显示为随机字符串。有任何想法吗?

编辑后: 这段代码总是被执行Console::WriteLine("Not Found !");

0 投票
1 回答
344 浏览

visual-c++ - 如何使托管包装类使用另一个托管包装类的属性?

这个想法是我想重用代码而不是复制它。下面,UnManagedB 派生自 UnmanagedA。这两个结构都有其相应的托管包装器,如下所示。我想从 ManagedA 派生 ManagedB,以便我可以将 ManagedA 中的属性重用于 ManagedB。问题是两个类都有自己的指向非托管对象的指针。派生中的非托管对象就是我想要的,我希望所有属性都使用 UnManagedB 指针。有没有办法做到这一点?

0 投票
2 回答
2674 浏览

visual-c++ - 将本机 C++ dll 中的向量返回到托管 C++/CLI dll

我正在围绕无法更改的本机 C++ dll 编写 CLI/C++ 包装器。本机 DLL 的一个函数返回一个非托管对象的向量。将此向量包装在我的 CLI 包装器中的最佳方法是什么?CLI 包装器将由 C# 应用程序使用。

本机 DLL 具有函数 getInstruments() ,这是我要包装的

所以我需要将仪器类包装在一个托管类中,并将 InstrumentList 类包装在一个托管类中。我包装了 Instrument 类,但需要将 getInstruments() 返回的向量转换为 InstrumentList 的 CLI 包装器可以返回的等效值。

0 投票
2 回答
9417 浏览

.net - C++/CLI 包装返回 std::shared_ptr 的函数

我目前正在使用 C++/CLI 包装一个 C++ 类,以实现 .NET 互操作性,遵循在托管类中保存本机指针的标准过程。在一个例子中,我有一个本地类,它的功能如下:

我已经开始为BaseChannel. 但是,如果我将原始指针传递给托管类的构造函数,则无法保证托管类指向的对象的生命周期。即,shared_ptr 可能超出范围,对象将被删除,托管类将保留一个悬空指针。

这种情况的常见解决方案是什么?

更新

@Ben:所以我像这样包装了包含上述问题中的方法的类(假设它在一个名为的本机类中Node,并且它被包装在一个名为 NodeRef 的托管类中:

因为 shared_ptr 在通过引用传递给托管类时没有增加其引用计数,这是否意味着

只要这个 shared_ptr 在范围内,它指向的对象仍然存在,因为它的引用计数至少为 1

? (参考C++ - 传递对 std::shared_ptr 或 boost::shared_ptr 的引用

0 投票
4 回答
14417 浏览

.net - 新的 SQLite 混合程序集

以前 .NET SQLite 库可从 .NET SQLite 库获得http://sqlite.phxsoftware.com,但最近它们已被主要 SQLite 团队接管,并已移动System.Data.SQLite 下载页面。新包似乎不再包含混合程序集(包含 sqlite3.dll 和 .NET 包装器的单个程序集)。

新软件包附带 .NET DLL,SQLite.Interop.dll桌面上不需要基于文档,但我的应用程序无法加载.NET DLL Unable to load DLL 'SQLite.Interop.DLL': The specified module could not be found.。我尝试在 IIS/IIS Express 下运行应用程序,并将 apppool 设置为 32 位。

我尝试将文件复制到SQLite.Interop.dll文件bin夹、系统文件夹和 ASP.NET 临时文件夹中,但仍然出现相同的错误。

是否有适用于任何地方的新版本的混合程序集?如果没有,有没有办法修复Unable to load DLL 'SQLite.Interop.DLL错误?

0 投票
3 回答
1456 浏览

visual-c++ - 将 .Net 引用 (%) 转换为本机 (&)

如何将 C++/CLIint %tmp转换为本机 C++ int &tmp

0 投票
2 回答
3288 浏览

.net - C++/CLI:从一个CLR类、多个C++类继承

在 C++/CLI 中,我想要一个类似于以下的类层次结构:

FooA 是否可以共享一个(非 CLR)基类,同时也从单独的 CLR 类继承?如果不是,那么 FooA 和 FooB 共享公共代码的最佳方式是什么?

0 投票
0 回答
278 浏览

.net - 类库中的混合模式汇编问题

我有一个独特的扭曲的常见问题。我正在运行 VS2010 并使用必须在以前的框架中编译的第 3 方 DLL 集群。当然我得到以下错误:

混合模式程序集是针对运行时版本“v2.0.50727”构建的,如果没有额外的配置信息,则无法在 4.0 运行时中加载。

通过将以下内容添加到 app.config 文件中,我之前在 Windows 窗体应用程序中使用这些 DLL 解决了这个问题:

我现在的问题是我希望在类库项目中使用这些 DLL,然后可以由 Windows 服务调用。不幸的是,类库不使用 app.config 文件。我已经在 Google 上搜索了几个小时,但未能找到有用的解决方案,因此非常感谢您提供任何帮助。

0 投票
1 回答
3422 浏览

asp.net-mvc-3 - ASP.Net MVC 3 区域和混合模式身份验证

是否可以让 ASP.Net MVC 区域使用与应用程序的其余部分不同的身份验证?主应用程序必须是表单身份验证,因为它是外联网。我需要有一个只有内部员工才能访问的管理部分。我做了很多研究,并找到了如何执行混合模式的示例,但我没有找到任何显示如何使用 ASP.Net MVC 区域执行此操作的示例。

谢谢你的帮助。

0 投票
1 回答
2798 浏览

.net - 如何在 VS2010 中创建混合托管/本机 C++ dll?

我想创建一个具有托管 C++ 接口的 dll,但在下面工作的实际代码是本机 C++。

目前我们正在使用 COM (STA) 与托管代码接口,但现在我们想用 ThreadPool 调用模块,这将不允许 STA 线程。我们希望避免为 MTA COM 重新编码模块。

我之前和其他人都问过这个问题,似乎回答没有解决基本问题:如何设置项目。我正在使用 VS2010,并希望列出步骤。我尝试从托管库(C++ 类库)开始并添加非托管类以及 MFC DLL(我们使用了一些 MFC 类,但最终希望解决它们)并添加托管类。我似乎永远无法编译它。

有人可以原谅我的无知并从项目类型开始明确列出步骤吗?