へのポインターを取得しようとしていますstring
が、ポインターのタイプはint
です。私はそれを正しく行っているかどうかわかりません。unsafeとfixedについて昨日知ったばかりなので、まだ少し疑問があります。char*
to をキャストできますint
か?エラーは発生していませんが、メソッドが機能していないため、ポインターが間違っているのか、サードパーティの OCX (サポートされていない) で何か間違っているのかわかりません。
C++ 呼び出しに関するサードパーティのドキュメント:
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);
}
}