C#调用C语言DLL 参数传递问题
燕赵飞歌 2016-01-07 05:14:38 请教大家一个问题:
public partial class Form1 : Form
{
[DllImport("user32.dll", EntryPoint = "MessageBoxA")]
static extern int MsgBox(int hWnd, string msg, string caption, int type);
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
string sinfo = "nihao ";
MsgBox(0, sinfo, "", 1);
}
}
如上代码,MessageBoxA的参数是一个字符串的地址,在C++中字符串是以'\0'结尾的,但是C#中string的结尾不是'\0',那把C#的string传递到MessageBoxA函数中,MessageBoxA函数是如何解析的呢??
一直想不明白,哪位给解释一下?