我有一个C一个导出函数++ DLL在一个C#应用程序,BYTE * P
// C++ DLL (Blarggg.dll)
extern "C"
{
USHORT ReadProperty(BYTE * messsage, USHORT length, BYTE * invokeID)
{
if(invokeID != NULL) {
* invokeID = 10 ;
}
return 0;
}
}
,我想将其提供给我的C#应用程序的DllImport一个C++ DLL
// C# app
[DllImport("Blarggg.dll")]
public static extern System.UInt16 ReadProperty(
/* [OUT] */ System.Byte[] message,
/* [IN] */ System.UInt16 length,
/* [OUT] */ System.Byte[] invokeID);
private void DoIt()
{
System.Byte[] message = new System.Byte[2000];
System.Byte[] InvokeID = new System.Byte[1];
System.UInt16 ret = ReadProperty(message, 2000, InvokeID); // Error
}
问题是我不断收到以下错误消息。
类型“System.NullReferenceException”的unhanded异常出现在Blarggg.dll 其他信息:对象没有设置为一个对象的一个实例。
我使用VS2008来构建DLL和C#应用程序。
我不是C#程序员。
我在做什么错?
我将当前项目中的代码复制到一个新项目中,并且能够编译并运行任何问题。它必须与我的应用程序或另一部分应用程序有关。 谢谢。 – 2009-10-21 23:35:54