问题标签 [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 投票
1 回答
235 浏览

c++ - 为 CGI 和 WPF 开发混合 C++ 和 C++/CLI

这与这个问题有关,但鉴于答案的方向,我认为最好单独提出这个问题。

我需要开发一个既可以在 CGI 中使用(长话短说,叹息)又可以被 c# 引用的类库。由于两个部署必须能够同时更新,我在弄清楚如何使用 CLI/native c++ 交互时遇到了很多麻烦。

由于我无法控制服务器部署环境,因此暴露给它的所有代码都必须是本机的,这不适用于 WPF。正如在相关问题中一样,我不是在寻找任何人为我做我的工作,只是为了给我指明正确的方向。

我研究了COM Interop,但找不到一个清晰、简单的例子。

0 投票
1 回答
1050 浏览

visual-studio-2010 - vs2010中的本机/混合模式dll链接错误

我试图了解本机代码如何与 .NET 代码交互,并且基本上试图实现本主题答案中的示例。示例代码有两个部分,一个进入使用 /clr 选项编译的 .dll 中:

并且应该调用此函数的代码进入本地编译的 win32 应用程序:

但是 vs2010 给出了以下链接器错误:

错误 LNK2019:函数 _wmain 中引用的未解析外部符号“bool __cdecl toUpper(void)”(?toUpper@@YA_NXZ)

一旦我关闭 dll 项目上的 /clr 选项,一切正常,所以我假设我已经正确设置了项目之间的所有依赖项。关于我做错了什么有什么建议吗?

0 投票
1 回答
1529 浏览

exception - gcroot 没有价值

我对非托管代码中的托管对象有一个奇怪的问题。我有这个桥接 C++ 和 C# 代码的 C++/CLI 模块。我有这样的结构:

现在,在某个时候,我创建了这个托管引用的一个实例并设置了 addonHost。一切都很好,我可以使用手柄。

在此处输入图像描述

但是,在某些情况下(恐怕需要很多上下文描述)该值无法评估:

在此处输入图像描述

在这种情况下,使用 addonHost 调用方法会导致“找到的入口点”异常。

从截图可以看出,这不是两个不同的实例,两个不同的句柄。是一样的。我不明白在某些情况下如何不评估“价值”。也许我怎么能抓住它。因为它不为空。

我还应该提到的是,我有几个gcroot<T>,他们都有这个问题,除了一个是gcroot<System::String>.

更新

这是调试器在执行期间显示的内容。该对象被创建并可用,然后在某个时候,该值“消失”,并且在下一次调用时它仍然存在。但这是非常可重复的。这不是随机的。

0 投票
3 回答
1964 浏览

.net - 跨程序集边界将托管 C++/CLI 类型转换为非托管类型

一直在编写一些 C++/CLI 来包装现有的非托管 C++ 库,从托管类型转换为非托管类型的问题出现了。一个简单的例子是将 std::string 转换为 System::String 但该原理适用于许多类型,即数组 -> 向量。编写了一些转换函数后,我决定将它们打包在一个程序集中,以便我可以重用它们。鉴于全局 C++/CLI 函数在当前程序集之外不可见,我最终得到了这样的结果

这符合要求,但函数转换不会在程序集外部公开可见,因为它在签名中使用非托管类型,请参见此处http://msdn.microsoft.com/en-us/library/ms235607%28v=VS。 100%29.aspx了解更多信息。解决方法通常是添加

到文件中,我在其他情况下也这样做了,没有问题。但是 make_public 不适用于像 std::string 这样的模板类。有关一些信息,请参见此处http://msdn.microsoft.com/en-us/library/ms235343%28v=vs.80%29.aspx

例如,我发现了一些变通方法的尝试,但它们看起来都很丑陋。

所以,毕竟,我的问题是我在这里遗漏了一些明显的东西吗?在我看来,从托管类型转换为非托管类型,特别是对于容器类,即 STL.NET <--> Unmanged STL 将是一个常见问题,但经过大量搜索后,我没有找到太多关于该主题的内容。

0 投票
2 回答
4282 浏览

string - 使用 StringToHGlobalAnsi 在函数中将 System::String 转换为 char*

我需要在我的 CLI 包装器中进行多次转换,System::String^并且char*我已经编写了一个函数,但是在返回之前我无法释放堆空间char*!(随着时间的推移获得堆错误)

转换

我使用如下功能:

有任何想法吗?!

0 投票
3 回答
1154 浏览

visual-studio - Visual Studio 2010 在调试 C++/CLI(混合模式)项目期间挂起

在谷歌这个问题之后,我发现它已经被报告了,但 MS 还没有任何用处。我想知道是否有人找到解决它的方法?

0 投票
1 回答
369 浏览

windows-ce - Windows CE / Compact Framework 上的混合模式

有没有办法为 Windows CE(6.0 版)创建混合模式应用程序/dll,并安装 Compact Framework(>2.0 版)?源代码是用 C++ 编写的。我只成功地构建了基于 C# 的纯 .NET 应用程序。使用 Visual Studio (2005) 并将 /CLR 添加到命令行时,我收到警告“cl:命令行警告 D9002:忽略未知选项 '/CLR'”

感谢您提前提供的每一个提示

0 投票
1 回答
589 浏览

strongname - 不能为我的生命命名一个混合模式 DLL

我有一个混合模式 dll。我已将 Linker\Advance\Key File 设置为指向有效的 *.snk 文件。然而,该 dll 不是强命名的。

我可以用 sn 验证这一点。它以“不代表强命名程序集”响应。

这里有一个类似的帖子,它提到了延迟签名。我试过这个无济于事。

任何帮助将不胜感激!

0 投票
2 回答
8933 浏览

.net - How can I send a managed object to native function to use it?

How can I send a managed object to native function to use it?

0 投票
2 回答
2233 浏览

sql-server - 新的 SQL Server 安装混合模式身份验证不允许 Windows 身份验证

我有一个 SQL Server 2008 RS 标准版的新实例。我启用了混合模式身份验证,但我无法让 Windows 身份验证工作。我收到错误:18456,用户“MyDomain\jreddy”登录失败。我可以使用 sa 帐户登录,以便进行更改,但我不确定要更改什么。任何帮助将不胜感激。

我检查了事件日志,发现此错误与登录失败有关:

原因:基于令牌的服务器访问验证因基础结构错误而失败。