У меня есть заголовочный файл C с:Использование C структуры в C#
typedef struct CallbackData
{
Int 32 linkType;
string strUrl;
} CallbackData
У меня есть функция в C#:
private Int32 CallbackFunction(IntPtr intPtr, Int32 callbackData, Int32 commandInfo, object callbackObject)
{
if (callbackObject.GetType() == typeof(CallbackData))
{
var callbackData = (CallbackData) callbackObject;
callbackData.strUrl = "Something";
return 0;
}
if (callbackData == 283)
{
return 0;
}
Console.WriteLine(callbackData);
return 0;
}
Я хотел бы импортировать CallbackData
-структуру в C#, а затем проверить чтобы увидеть, является ли callbackObject
, который передан в CallbackFunction
, имеет тип CallbackData
. Затем я хотел бы установить strUrl из callbackObject
.
Я создал-структуру как и в другой C# файл:
[StructLayout(LayoutKind.Sequential)]
public struct CallbackData
{
Int32 linkType;
string strUrl;
}
В.С. говорит, что "object
не содержит определение для strUrl
и не метод расширения strUrl
принимать первый аргумент типа object
не может быть (вам не хватает директивы использования или ссылки на сборку?) ». Как отредактировать strUrl объекта, если он имеет тип CallbackData
?
EDIT: Изменено, как я выбрал входящий параметр.