2

オブジェクトがWindowsレジストリに追加されると、次のように表示されます。

MyNamespace.MyType

COMに登録しようとすると、名前空間とクラス名が長すぎるという問題が発生したことを覚えているようです。WindowsまたはCOM+でのクラスの登録に最大長の制限はありますか?

4

3 に答える 3

4
  • 39文字以内にしてください。
  • 1つ以上のピリオドを除いて、句読点(アンダースコアを含む)は含まれません。
  • 数字で始めないでください。
  • 同じアプリケーションのOLE1バージョンがある場合はそれを含め、OLE1アプリケーションのクラス名とは異なります。*

ソース=MSDN

于 2010-06-26T10:55:33.050 に答える
2

COMコンポーネントを登録する主な方法は、固定サイズの16バイト番号であるCLSIDを使用することです。GUID。遅延バインディングを使用する必要があるCOMクライアントに役立つProgIDを公開できます。スクリプト言語のように。

ProgIDに長さの制限があるかどうかはわかりませんが、COMインフラストラクチャで定義されているものはありません。たぶん、スクリプト言語には1つあります。あなたがVB6を使用していることは知っていますが、ProgIDはまったく必要ありません。早期バインディング(CreateObjectではなく新しいClassName)を優先します。レイトバウンドコールは約10,000倍遅いので、これは良い考えです。

とにかく、ProgIdを指定する場合は、<ProgId>属性を使用します。通常の形式はAppName.ClassNameです。これは、長さの制限をテストすることはめったにありません。

于 2010-06-25T18:36:29.617 に答える
2

「プログラマティックID」のランダムな制限と言えば...

---------------------------
Microsoft Visual Basic
---------------------------
Programmatic ID string too long '<<project_name>>.<<control_name>>'.
The Programmatic ID must be 39 characters or less.
---------------------------
OK   Help   
---------------------------
于 2010-06-26T10:49:25.513 に答える