C# “如何编译/clr”;servprov.h";(IServiceProvider)

C# “如何编译/clr”;servprov.h";(IServiceProvider),c#,c++-cli,C#,C++ Cli,我想/clr编译一个需要“servprov.h”(IServiceProvider)的项目 我面对这个错误: 错误2错误C2872:“IServiceProvider”:不明确的符号116 这是代码的一部分: #ifndef __IServiceProvider_FWD_DEFINED__ #define __IServiceProvider_FWD_DEFINED__ typedef interface IServiceProvider IServiceProvider; typedef i

我想/clr编译一个需要“servprov.h”(IServiceProvider)的项目

我面对这个错误:

错误2错误C2872:“IServiceProvider”:不明确的符号116

这是代码的一部分:

#ifndef __IServiceProvider_FWD_DEFINED__
#define __IServiceProvider_FWD_DEFINED__
typedef interface IServiceProvider IServiceProvider;
typedef interface ::IServiceProvider IServiceProvider;
1-我将所有
IServiceProvider
更改为
::IServiceProvider

在这一部分

typedef /* [unique] */  __RPC_unique_pointer ::IServiceProvider *LPSERVICEPROVIDER;
我面对这个错误:

错误1错误C3699:“*”:无法对类型使用此间接寻址 '系统::IServiceProvider'92

2-我将其更改为:

typedef /* [unique] */  __RPC_unique_pointer System::IServiceProvider ^ LPSERVICEPROVIDER;
我又犯了一个错误:(在代码的这一部分:

#ifndef __IServiceProvider_FWD_DEFINED__
#define __IServiceProvider_FWD_DEFINED__
typedef interface IServiceProvider IServiceProvider;
typedef interface ::IServiceProvider IServiceProvider;
错误2错误C2371:“IServiceProvider”:重新定义;不同 基本类型99

3-我把它变成:

typedef /* [unique] */  __RPC_unique_pointer System::IServiceProvider ^ LPSERVICEPROVIDER;
类型定义接口::IServiceProvider IServiceProvider2

现在我有一个错误:

错误3错误LNK2028:未解析的令牌(0A0001CA)“公共:\此调用 cComponentManager::~cComponentManager(无效)” (??1组件管理器@@$$FQAE@XZ)在函数“public:void”中引用 *_uuthiscall cComponentManager::`scalar deleting destructor'(unsigned int) (??\GCU组件管理器@@$$FQAEPAXI@Z)C:..\OpenSmileCLI\OpenSmileCLI\OpenSmileCLI.obj

错误67错误LNK2001:未解析的外部符号“公共:虚拟” void uu此调用ConfigValueObj::copyFrom(类ConfigValue常量*) (?copyFrom@ConfigValueObj@@UAEXPBVConfigValue@@@Z)C:…\OpenSmileCLI\OpenSmileCLI\OpenSmileCLI.obj

我的更改正确吗? 我该怎么办

OpenSmileLibrary使用的“servprov.h” 我想在C#和openSmileLibrary之间创建CLI

解决方案:

我将调试模式更改为release(导致OpenSmileLibrary),并在
#include“servprov.h”
之后更改使用系统的位置

对于LNK错误:


删除路径目录中的空间。

糟糕,不要编辑SDK头文件,这是一个非常糟糕的主意。基本问题是在#include之前有
使用名称空间系统;
,这使得它不明确。链接错误是由于忘记链接笑脸造成的。lib@HansPassant:tnx,我链接了所有.lib文件(与OpenSmileLibrary相关)对于我的解决方案,但我仍然有132个外部错误,如LNK2028和LNK2001。糟糕,不要编辑SDK头文件,这是一个非常糟糕的主意。基本问题是,在#include之前有
使用名称空间系统;
,这使得它不明确。链接错误是由于忘记链接笑脸造成的。lib@HansPassant:tnx,我链接了所有.lib文件(与OpenSmileLibrary相关)对于我的解决方案,但我仍然有132个外部错误,如LNK2028和LNK2001。糟糕,不要编辑SDK头文件,这是一个非常糟糕的主意。基本问题是,在#include之前有
使用名称空间系统;
,这使得它不明确。链接错误是由于忘记链接笑脸造成的。lib@HansPassant:tnx,我链接了所有.lib文件(与OpenSmileLibrary相关)添加到我的解决方案中,但我仍然有132个外部错误,如LNK2028和LNK2001。