【发布时间】:2016-06-23 09:59:07
【问题描述】:
我有本机功能
void SetValue(char *FieldName, void *pValue);
我想将其更改为调用较早的 set callback/delegate
有签名
void SetValueDelegate(string fieldName, IntPtr value);
我这样调用原生 SetValue:
int IntValue = 0;
SetValue("MyField", &IntValue);
现在我认为我可以将其转换为托管委托:
void SetValueDelegate(string fieldName, IntPtr value)
{
if (fieldName == "MyField")
{
int intValue = (int)value;
}
}
这不起作用。如果转换为 long,则值为 204790096。
这应该怎么做?
【问题讨论】: