我有以下問題:UInt32的到IntPtr的
public class ListenThread : SocketInvoke
{
[DllImport("Ws2_32", CharSet = CharSet.Auto)]
public unsafe static extern UInt32 WSAWaitForMultipleEvents(UInt32 cEvents, IntPtr hEventObject,
UInt32 fWaitAll, UInt32 dwTimeout, Boolean fAlertable);
public void ListenConnections(NetSharedData data)
{
while (true)
{
unsafe
{
if (WSAWaitForMultipleEvents((UInt32)1, data.signal, (UInt32)0, (UInt32)100, false) != WSA_WAIT_TIMEOUT)
{
}
}
}
}
data.signal是UInt32的我怎麼能轉換爲IntPtr的?我嘗試:
IntPtr signal = (IntPtr)data.signal;
,但它不工作因爲我需要一個指向data.signal(UInt32)類型的指針,而不是指針的int值,這會使內存異常。
什麼,我需要一個C++例子:
int signal = 0;
int* psignal = &signal;
好吧,你提供的代碼不包含'IntPtr signal = data.signal;' –
而且**總是**告訴我們你的意思是「它不工作」 –
我說我試過,因爲我不知道如何將UInt32轉換爲IntPtr。該代碼提供了我需要設置IntPtr類型和data.signal爲UInt32的API。 – ffenix