【发布时间】:2014-10-22 13:39:21
【问题描述】:
我正在用 c++/cli 编写一个在 C# 和 CryptoAPI 之间进行转换的项目。正因为如此,我不得不来回做很多封送处理,在某些情况下,我扩展了封送处理库以使其中一些更容易。在某些情况下,当我编译时,我会收到以下消息:
错误 C4996: 'msclr::interop::error_reporting_helper ^,_From_Type,false>::marshal_as': 不支持这种转换 此转换所需的库或头文件不是 包括。请参阅有关“如何:扩展 Marshaling Library' 用于添加您自己的编组方法。 C:\程序 文件 (x86)\Microsoft Visual Studio 12.0\VC\include\msclr\marshal.h
我知道错误的含义,在某些情况下,这是因为我忘记为类添加标题。然而,如果不是这样,这个错误很难追查到。由于实际错误指向 marshal.h 文件内部,因此没有任何线索(我可以看到)实际问题出在哪里。我发现解决此问题的唯一方法是每次编写使用编组的代码行时,我必须停止并编译以确保特定行是正确的。你可以想象这让我慢了多少。有谁知道找到此错误发生位置的更好方法?
【问题讨论】:
标签: c++-cli marshalling