所有需要的工具:

1. TextTemplate

2. P/Invoke Interop Assistant

3. DotNetResolver

vc++的native类一般是无法直接暴露在.net环境下用的(这里暴露的意思是其他.net可以调用)

所以我们其实总是要做一个stub,或者说adapter

对于一般的结构,我们可以通过工具,复制黏贴,转化为.net的类

这里推荐工具:

PInvoke Interop Assistant

我是从stackoverflow上了解的:这里

要注意的是,他们推荐的这个工具 P/Invoke Interop Assistant 有一些限制,我发现他可能无法识别一些注释,特别是注释中有中文,所以必须在贴入VC++代码后,删除所有注释(建议使用正则表达式), 另外由于控件本身的限制,没法输入大量的代码,这里由于源码公开,可以进入后台查看。当然,源代码是VB.net,看不懂…….于是直接使用了工具3:DotNetResolver 反汇编看代码。

P/Invoke Interop Assistant的exe是:winsiggen.exe

.net名称是: sigimplib

其中界面的分支为:

PInvoke.Controls.TranslateSnippetControl

发现其中函数GenerateCode 中有如下语句:

PInvoke.Transform.BasicConverter::ConvertNativeCodeToPInvokeCode(string)

ok, 果断引用此exe,调用此函数就可以解决之前控件造成的字符串字数限制了

最后,也是比较麻烦的就是用tt写stub了,好在结构都已经通过前面的工具转化为.net的了!

最新文章

  1. C/C++: C++变量和基本类型
  2. jquery jQuery-File-Upload 例子
  3. GZFramwork数据库层《二》单据表增删改查(自动生成单据号码)
  4. C#联调C++项目
  5. CF 15/09/23
  6. [百度空间] [转]内存屏障 - MemoryBarrier
  7. 《大道至简-Team》
  8. makefile实例(2)-多个文件实例
  9. hdu 3938 Portal(并查集+离线+kruskal)2011 Multi-University Training Contest 10
  10. [AngualrJS] ng-strict-di
  11. js动态向页面中添加表格
  12. HDU 4292Food(网络流的最大流量)
  13. python 自定义回调函数
  14. [BZOJ 4361]isn
  15. Elasticsearch基础知识分享
  16. TLB的作用及工作过程
  17. js-工具函数
  18. C# 位运算详解
  19. 【Jmeter自学】badboy使用(三)
  20. Ant Man CodeForces - 704B (图论,贪心)

热门文章

  1. 《MySQL必知必会学习笔记》:子查询
  2. 【BZOJ2729】[HNOI2012]排队 组合数
  3. Vue使用axios
  4. 统计 与 数学 induction 归纳 deduction 演绎 吴喜之老师
  5. Redis(一)基础数据结构
  6. Eclipse中连接Sql Sever2008 -----转自Yogurshine
  7. 【React系列】Props 验证
  8. IC卡、ID卡、M1卡、射频卡的区别是什么
  9. mac配置apache
  10. system调用命令行命令而不显示命令行窗口