質問者様から提示されたURLを見ると、C#の ref uint はC++では DWORD*となっていますね。
であれば、
unsafe void func (....途中省略..., unt *arg)
として
そこでargがnullかどうか判定されてはいかがでしょうか。
上記のサンプルコードです。
----------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
unsafe static int sub(uint *data)
{
if (data == null)
{
Console.WriteLine("data=null");
}
else
{
Console.WriteLine("data!=null");
}
return 1;
}
static int sub(ref uint data)
{
Console.WriteLine("ref参照");
return 1;
}
static void Main(string[] args)
{
uint a=9;
sub(ref a);
unsafe
{
uint *p = null;
sub(p);
}
}
}
}
------------------------
実行結果は
ref参照
data=null
となります。
----------------------
投稿日時 - 2010-05-25 22:58:31