メソッドを含むCOMオブジェクトを作成しようとしています。このメソッドは、Classic ASPで使用されているため、マーシャリングする必要のある配列を返します。
スタックオーバーフローに関する質問を見つけました。これは、メソッドではなくプロパティに対して行う方法を示しています。
これは私が試したことです:
public interface IMine
{
[DispId(1)]
object stringSize(string txt, string fontName, float fontSize)
{
[return: MarshalAs(UnmanagedType.Struct, SafeArraySubType = VarEnum.VT_ARRAY)]
}
}
エラーが発生しているので、明らかに間違っています。
The name 'MarshalAs' does not exist in the current context
それは私には何の意味もありません。
実際の方法は次のとおりです。
public object stringSize(string txt, string fontName, float fontSize)
{
System.Drawing.SizeF result = _textSize(txt, fontName, fontSize);
return new object[] { result.Width, result.Height };
}
誰かが私の構文を修正してください。