由于最近要做一个新项目,新项目对于程序的交互见面要求较高.所以想用WPF做,但因为公司已有很好的C++做的底层库,也就引发了是重新全部用WPF做还是wpf做界面部分关于业务的则使用现有C++现有库. 1.如果全用WPF做势必花费大量时间在业务处理上,担心时间不够用
2.WPF做界面使用现有的C++库,中间使用C++/CLI做互操作. 最近学习了些C++/CLI的相关知识.有了如下疑问
希望在这方面有经验的大大们指点迷津.疑问:
1.现有C++的库全都是使用多字节字符集编译的,而且是由前一批牛人们自己编写的框架 对UNICODE字符集的支持不够
想将这个编码转成UNICODE可视为不可能完成的工作. 那么C#/WPF是使用UNICODE的, 而C++/CLI是微软在CLR上实现的
微软版本的CLI语言. 问题来了, 如果C++/CLI这个作为互操作层时 使用UNICODE还是多字节? 如果使用UNICODE,C#可以
调用该层封装的函数和类,C++/CLI在引用C++库时就会编译报错. 如果使用多字节, C#调用怎么实现?2.基于问题1,提出 如果不用C++/CLI做互操作层 ,而使用COM组件的方式是否可以解决这个问题?
先谢谢各位大大了.分不多

解决方案 »

  1.   

    用C#或者C++/CLI区别不大
    将现有库编译为标准 dll ,调用的时候指定字符集.net会自动转换好的。
      

  2.   


    大大的意思是 C# -> C++/CLI(dll) UNICODE? -> C++(dll) 多字节
    调用的时候是指 C#调用C++/CLI 还是 C++/CLI调用 C++(dll)?
      

  3.   

    http://msdn.microsoft.com/zh-cn/library/s9ts558h%28v=VS.90%29.aspx
      

  4.   

    C#中声明dll函数,然后就可以直接调用了。
    char*的参数需要指定字符集。具体写法参考上面链接。
      

  5.   


    是C#直接调用C++库的函数的方式嘛,就是说的PInvoke?