У меня есть экспортируемая функция в DLL-библиотеке c ++
// C++ DLL (Blarggg.dll)
extern "C"
{
USHORT ReadProperty( BYTE * messsage, USHORT length, BYTE * invokeID )
{
if( invokeID != NULL ) {
* invokeID = 10 ;
}
return 0;
}
}
То, что я хотел бы сделать его доступным для моего приложения C #
// 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» в Blarggg.dll
Дополнительная информация: ссылка на объект не установлена для экземпляра объекта.
Я использую VS2008 для сборки приложений DLL и C #.
Я не программист на C #.
Что я делаю не так?