我正在尝试获取指向 a 的指针string
,其中指针的类型为int
。我不确定我是否做得正确。我昨天才发现unsafe和fixed,所以我仍然对此有所质疑。我可以投到char*
吗int
?我没有收到任何错误,但这些方法不起作用,所以我不确定指针是否错误,或者我是否对第 3 方 OCX(不支持)做错了。
C++ 调用的第 3 方文档:
BlobToVariant(VARIANT *pV, long BlobPointer)
WriteVToFile(VARIANT *pV)
什么 VS2010 C# Intellisense 说:
BlobToVariant(ref object v, int BlobPointer)
WriteVToFile(ref object v)
这是我的代码:
string imageBlob = "superlongstring";
// 3rd Party ActiveX control for tiff image files
TIFFLib.TIFF tiff = new TIFFLib.TIFF();
// Variant object that will hold image
object blobVariant = new object();
unsafe
{
fixed (char* p = imageBlob)
{
int blobPointer = (int)p;
tiff.BlobToVariant(ref blobVariant, blobPointer);
tiff.WriteVToFile(ref blobVariant);
}
}