C# 托管C++;类不能从C中引用#

C# 托管C++;类不能从C中引用#,c#,.net,visual-studio,visual-studio-2013,managed-c++,C#,.net,Visual Studio,Visual Studio 2013,Managed C++,我现在遇到的问题真的很奇怪。我尝试从C++项目中使用托管C++类,但编译器无法找到类型。 请看此屏幕截图: 托管的C++项目(NGEVILL,Gervill,NETA)被引用,并且根据对象浏览器,它包含所有必需的命名空间和类型。在我的源代码中,我添加了using和using类,但仍然出现编译错误 现在最奇怪的部分:可以引用托管C++项目中的其他类型。在另一个C#类中,我访问PortMixerProviderNative类的方法。这意味着目标平台和.NETFramework版本是正确的(.NET

我现在遇到的问题真的很奇怪。我尝试从C++项目中使用托管C++类,但编译器无法找到类型。 请看此屏幕截图:

托管的C++项目(NGEVILL,Gervill,NETA)被引用,并且根据对象浏览器,它包含所有必需的命名空间和类型。在我的源代码中,我添加了using和using类,但仍然出现编译错误

现在最奇怪的部分:可以引用托管C++项目中的其他类型。在另一个C#类中,我访问PortMixerProviderNative类的方法。这意味着目标平台和.NETFramework版本是正确的(.NET4.5-x86版本)


VisualStudio不知怎么缓存了一个旧版本的托管C++ DLL,或者还有什么会导致这样的问题?

PoxMixEnter是一个本地C++类,而不是托管类。在某些情况下,本机类可以在程序集元数据中公开,这通常是因为它们是托管类包装器中的私有字段类型,但它们在C#程序中无法以任何方式使用。只有C++/CLI项目中的

public ref class
声明可用


还不清楚应该使用什么包装类。不是很有趣。如果需要更多帮助,请检查供应商手册和/或代码示例或联系它们。

< P>混合机是本地C++类,而不是托管类。在某些情况下,本机类可以在程序集元数据中公开,这通常是因为它们是托管类包装器中的私有字段类型,但它们在C#程序中无法以任何方式使用。只有C++/CLI项目中的
public ref class
声明可用


还不清楚应该使用什么包装类。不是很有趣。查看供应商手册和/或代码示例,如果需要更多帮助,请与他们联系。

我终于找到了这个问题的解决方案:由于某些原因,项目中没有包含实现PortMixerNative类的cpp文件。在将PortMixerNative.cpp再次添加到项目中之后,我终于可以看到该文件中存在语法错误。修复错误并重新编译.Native项目后,我可以成功地引用该类


奇怪的是,即使使用没有实现的方法,.Native项目也能成功编译。如果有人也遇到这个问题,请检查您尝试使用的类的所有方法是否都有实现

我终于找到了这个问题的解决方案:由于某种原因,实现PortMixerNative类的cpp文件没有包含在项目中。在将PortMixerNative.cpp再次添加到项目中之后,我终于可以看到该文件中存在语法错误。修复错误并重新编译.Native项目后,我可以成功地引用该类


奇怪的是,即使使用没有实现的方法,.Native项目也能成功编译。如果有人也遇到这个问题,请检查您尝试使用的类的所有方法是否都有实现

PortMixerNative类是一个托管类。(声明为
公共引用类PortMixerNative
)。我是这个库的供应商,PortMixerNative是我打算使用的包装器。PortMixerNative类是一个托管类。(声明为
公共引用类PortMixerNative
)。我是这个库的供应商,PortMixerNative是我打算使用的包装器。