首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VC >

c++/cli类型转换的有关问题

2012-12-22 
c++/cli类型转换的问题本帖最后由 sfwork 于 2012-10-13 10:14:43 编辑最近在做一个C#和c++/cli混合编程的

c++/cli类型转换的问题
本帖最后由 sfwork 于 2012-10-13 10:14:43 编辑 最近在做一个C#和c++/cli混合编程的项目,在c#内部能正常运行的代码,在c++/cli里就报异常了,下面是c#代码:


        public ORF_R04 ORF_R04_Parse(String message)
        {
            NHapi.Base.Parser.PipeParser Parser = new NHapi.Base.Parser.PipeParser();
            NHapi.Base.Model.IMessage m = Parser.Parse(message);
            //ORF_R04 orfr04 = m as ORF_R04;
            ORF_R04 orfr04 = new ORF_R04();
            
            orfr04 = (ORF_R04)m;
            //orfr04 = m as ORF_R04;
            return orfr04;
        }


在c++/cli调用的代码:

     NHapi::Model::V24::Parser::MsgParser ^msgParser;
      ORF_R04 ^orfr04 = msgParser->ORF_R04_Parse(message);

程序执行到
ORF_R04 ^orfr04 = msgParser->ORF_R04_Parse(message);
就报异常了。下面是异常界面:

哪位大神可以帮忙解决下,小弟感激不尽!
[解决办法]
提示明显是类型不能被转换
[解决办法]
你确定C++/CLI和C#代码里传入的message都是一样的而只有C++/CLI出错了?
[解决办法]
引用:
提示明显是类型不能被转换


我也清楚是类型不能转换啊。在c#内部是可以调用的,跨语言到c++/cli就不行了。
[解决办法]
引用:
你确定C++/CLI和C#代码里传入的message都是一样的而只有C++/CLI出错了?


跟参数message没有关系的,问题是类型转换出错了
[解决办法]
根据参数的不同 Parser.Parse(message) 返回不同类型的对象也是有可能的,在没有控制单一条件下,将错误归结为语言问题是非常武断的。

热点排行