用本机C ++编写C#托管代码

| 我正在开发托管库(使用Microsoft Web Services),并且 将其包含到c ++项目中。该项目不使用“ 0”选项, 因此,当我包含库的头文件VS2005时,会显示错误 说我必须使用
/clr
选项。这样做我不兼容 使用
/EHs
命令行选项(错误D8016),但从
EHs
更改为 没有异常处理无法解决问题并不断向我显示同样的错误。 任何建议都欢迎。 先感谢您。     
已邀请:
如果您拥有非托管的C ++代码并想使用托管的代码,则可以选择以下几种方法: 通过使用
/clr
开关将非托管代码更改为C ++ / CLI。 编写一个C ++ / CLI包装器库。它可以DLL导出您在非托管代码中调用的非托管函数。 跳过包装器库,并通过此库直接DLL导出非托管函数。     
您不能通过非托管C ++应用程序使用托管库。由于添加了/ clr选项,因此您的c ++应用程序也将被管理(仅用于记录:)) 这可能对您有帮助:http://msdn.microsoft.com/zh-cn/library/ffkc918h.aspx-/ clr选项的限制。     
可以编写托管的c ++适配器,该适配器将调用C#库,并像通常调用普通的c ++库一样从非托管的c ++程序中调用此适配器。如果出于某种原因要使其不受管理,则将使用/ clr和不带/ clr的主c ++程序编译适配器库。     
您可以嵌入单声道环境并启动AppDomain。 mono \的运行时API将允许您实例化类并在其上调用成员。这会很笨拙,但是会起作用 http://www.mono-project.com/Embedding_Mono 请注意,Mono是完全兼容.Net 4.0的CLR,它可以与Windows上的Microsoft核心库一起使用。 在Windows和Unix上,它可以与Mono corlib / class库一起使用。有些区域未包含在Mono中,但它们似乎变得稀疏。您可以使用MoMa工具来确定您的应用程序是否使用不兼容/不完整的API。 或者,即使您仍然在Windows上,也可以只使用Microsoft .NET框架!     

要回复问题请先登录注册