互操作性——使用C/C++类型的非托管函数基础

简介:

1、使用微软的C运行库msvcrt.dll提供的方法和Win32 API提供的函数进行平台调用
代码如下:

class  Program
{
     //微软的C运行库msvcrt.dll提供的puts方法
     [DllImport( "msvcrt.dll" )]
     static  extern  int  puts( string  msg);
 
     [DllImport( "msvcrt.dll" )]
     static  extern  int  _flushall();
 
     //Win32 API提供的函数进行平台调用
     [DllImport( "user32.dll" , EntryPoint = "MessageBox" )]
     public  static  extern  int  MessageBox( int  hwnd, string  lpText, string  lpCaption, int  wType);
 
     static  void  Main( string [] args)
     {
         puts( "hello world test!" );
         _flushall();
         MessageBox(0, "Hello world Test!" , "Title is here" , 0);
     }     
}

2、工具的使用。要查看DLL中包含的函数信息,可以用的工具有:Depends.exe、dumpbin.exe、PE Explorer等

使用dumpbin的形式如下:

 

 3、使用EntryPoint字段对函数进行重命名

[DllImport( "NativeLib.dll" ,EntryPoint= "PrintMsg" )]
public  static  extern  void  PrintMsgRename( string  msg);

PrintMsg必须与非托管的函数名一致,PrintMsgRename就是重命名的函数名。

 

 


本文转自Work Hard Work Smart博客园博客,原文链接:http://www.cnblogs.com/linlf03/archive/2011/09/24/2189422.html,如需转载请自行联系原作者

目录
相关文章
|
1月前
|
算法 程序员 C语言
【C++ 随机数分布类型 】深入探索C++随机数分布:原理、应用与实践(二)
【C++ 随机数分布类型 】深入探索C++随机数分布:原理、应用与实践
56 0
【C++ 随机数分布类型 】深入探索C++随机数分布:原理、应用与实践(二)
|
1月前
|
算法 编译器 数据库
【C++ 泛型编程 高级篇】使用SFINAE和if constexpr灵活处理类型进行条件编译
【C++ 泛型编程 高级篇】使用SFINAE和if constexpr灵活处理类型进行条件编译
246 0
|
1月前
|
机器学习/深度学习 算法 编译器
【C++ 泛型编程 中级篇】深度解析C++:类型模板参数与非类型模板参数
【C++ 泛型编程 中级篇】深度解析C++:类型模板参数与非类型模板参数
47 0
|
1月前
|
设计模式 程序员 C++
【C++ 泛型编程 高级篇】C++模板元编程:使用模板特化 灵活提取嵌套类型与多容器兼容性
【C++ 泛型编程 高级篇】C++模板元编程:使用模板特化 灵活提取嵌套类型与多容器兼容性
259 2
|
1月前
|
存储 JSON 安全
【C++ 泛型编程 综合篇】泛型编程深度解析:C++中的五种类型泛型策略综合对比
【C++ 泛型编程 综合篇】泛型编程深度解析:C++中的五种类型泛型策略综合对比
65 1
|
14天前
|
编译器 C语言 C++
【C++初阶(九)】C++模版(初阶)----函数模版与类模版
【C++初阶(九)】C++模版(初阶)----函数模版与类模版
18 0
|
25天前
|
存储 缓存 C++
C++链表常用的函数编写(增查删改)内附完整程序
C++链表常用的函数编写(增查删改)内附完整程序
|
27天前
|
存储 安全 编译器
【C++】类的六大默认成员函数及其特性(万字详解)
【C++】类的六大默认成员函数及其特性(万字详解)
35 3
|
30天前
|
安全 程序员 C++
【C++ 基本知识】现代C++内存管理:探究std::make_系列函数的力量
【C++ 基本知识】现代C++内存管理:探究std::make_系列函数的力量
101 0
|
30天前
|
设计模式 安全 C++
【C++ const 函数 的使用】C++ 中 const 成员函数与线程安全性:原理、案例与最佳实践
【C++ const 函数 的使用】C++ 中 const 成员函数与线程安全性:原理、案例与最佳实践
71 2