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

怎么让IntPtr指向一个字符串

2012-01-15 
如何让IntPtr指向一个字符串IntPtridpIntPtr.ZeroStringBuilderidatanewStringBuilder( 000000 )str

如何让IntPtr指向一个字符串
IntPtr   idp=   IntPtr.Zero;
StringBuilder   idata   =   new   StringBuilder( "000000 ");
string   idata   = "000000 ";
我这样建立的2个idata字符串,如何让idp指向他
我指向他的目的是为了传递给dll的某个函数,他需要传指针
还有我定义了一个结构如何向dll的函数传递其指针?
http://community.csdn.net/Expert/topic/5612/5612998.xml?temp=.9482843

http://community.csdn.net/Expert/topic/5614/5614773.xml?temp=.5012018
所有分了,解决一起结了。

[解决办法]
char[] charArray = StringBuilder.ToString().ToCharArray();
unsafe
{
fixed(char* p = &charArray[0])
{
//p就是字串首地址
}
}
[解决办法]
http://msdn2.microsoft.com/en-us/library/s97shtze(VS.80).aspx
[解决办法]
//参考标准API如何实现的

[DllImport( "user32.dll ")]
public static extern int GetWindowText(IntPtr hWnd,
StringBuilder lpString, int nMaxCount);

private void button1_Click(object sender, EventArgs e)
{
StringBuilder vStringBuilder = new StringBuilder(256);
GetWindowText(Handle, vStringBuilder, vStringBuilder.Capacity);
Console.WriteLine(vStringBuilder.ToString());
}

[解决办法]
用GCHandle.Alloc(object obj)方法来给string分配一个指针!
[解决办法]
能不能把你的DLL拿过来让我看看??
[解决办法]
举个例子
[DllImport( "user32.dll ")]
public static extern IntPtr SendMessage(HandleRef hWnd, int msg, ref int wParam, ref int lParam);
如果Api方法需要返回这个参数,那么就用ref string paramname来定义参数。

热点排行