C++/CLI、MEX:错误 C3767 候选函数取决于函数参数类型

Posted

技术标签:

【中文标题】C++/CLI、MEX:错误 C3767 候选函数取决于函数参数类型【英文标题】:C++/CLI, MEX: Error C3767 candidate function(s) depending on function argument type 【发布时间】:2013-01-25 13:51:33 【问题描述】:

我正在使用一个结构如下的 mex 解决方案:

我有一个 C# 阅读器 A,它由一个 C++/CLI 项目 B 调用,它由一个从 matlab 调用的 mex 项目 C 调用。这不是我的代码,只是我应该运行的东西。

B 包含两个我无法访问的函数,首先是构造函数: B::B(mxArray* 数据)

第二个,常规函数: mxArray* B::toMatlab(bool 模式)

我尝试用 int 替换构造函数的 mxArray* 参数,这使得错误消失了,并且与其他函数类似,所以看起来函数本身是可访问的,但由于某种原因,我不是允许使用类型 mxArray* 作为参数。

我不希望包含太多关于我的代码的细节,但如果有任何我遗漏的相关内容,请告诉我。

【问题讨论】:

获得更好答案的方法:显示代码。不是您的 专有代码,而是产生相同错误的较小项目。制作整个项目的副本,取出您不想泄露的任何内容(即更改类名以不泄露任何内容)。看看你是否得到相同的编译错误。然后取出任何其他可能导致错误仍然发生的东西。最后,向我们展示这个问题的“简单独立示例”。 另外,请告诉我们您使用的 Visual C++ 版本。 【参考方案1】:

错误帮助表明您的问题是本机类型的可见性(在 .NET 元数据中),并提供此链接以获取更多信息和解决方案:

Type Visibility

【讨论】:

以上是关于C++/CLI、MEX:错误 C3767 候选函数取决于函数参数类型的主要内容,如果未能解决你的问题,请参考以下文章

编写 Mex 文件时出现错误消息,函数的数组输出有问题吗?

matlab 解决 错误使用 mex 未找到支持的编译器或 SDK

来自 MATLAB Mex 库的链接错误

C:矩阵向量乘积,两个双数相乘给出错误符号

mex 编译错误:Matlab 数据类型和函数的预期表达式错误

在 Linux 中编译 C 代码时,Mex 为 // 生成错误