問題タブ [com-interface]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
258 参照

com - 2 つの COM インターフェイス参照が同じインスタンスを指しているかどうかを確認する方法はありますか?

異なるソースから取得した 2 つのインターフェイス参照を指定します。それらが同じインスタンスによって実装されているかどうかをプログラムで確認する方法はありますか?

インターフェイス参照の単純な等価性チェックは常に失敗します。


編集:独立した問題であることが判明した元の質問の大部分は、新しい質問に移動されました。

0 投票する
3 に答える
81663 参照

vba - VBA からシリアル ポートにアクセスする最良の方法は何ですか?

VBA からシリアル ポートにアクセスする最良の方法は何ですか?

一部の営業担当者が、PowerPoint のアクション ボタンからシリアル ポート経由で単純な文字列を送信できるようにする必要があります。特にこのようなものには、VBA はあまり使用しません。普段なら何かのアプリに仕立てるのですが、実はそこまで悪くないと思います。プロジェクターで他の営業担当者や非技術者と話しているときに、このデバイスのデモを行うのに便利なツールです。また、この営業担当者は、VBA や PowerPoint プレゼンテーションに小さな変更を加えても問題ありませんが、.NET アプリケーションを再コンパイルすることはできません。

アクションに関するプレゼンテーションからバッチ ファイルを実行して実行できることはわかっていますが、それではあまり満足できません。おそらく COM オブジェクトにアクセスしてそこから実行できると思いますが、VBA で使用する最新かつ最高のライブラリについては詳しくありません。接続を送信して閉じます。

これは複数の人のコンピューターで実行する必要があるため、他のマシンに簡単に移植できるとよいでしょう。Office 2007 と Windows XP で実行する必要があると言えます。ただし、他のものとの互換性は素晴らしいボーナスです。

これをどのように処理すればよいですか?良いヒントやコツはありますか?図書館のおすすめ?

0 投票する
2 に答える
272 参照

c# - C#の部分クラスとCOMインターフェイス

C#ライブラリを作成し、それにCOMインターフェイスを公開します。

これを行うために必要な手順を理解しています。

  1. 簡単にGUIDが割り当てられていることを確認します。例: [assembly: Guid("dde7717b-2b75-4972-a4eb-b3d040c0a182")]
  2. COMVibile属性がTrueであることを確認してください
  3. クラスにGUID属性を配置します。例:[GuidAttribute("4df74b15-d531-4217-af7e-56972e393904")]
  4. Regasmを使用して登録します。

私の質問はこれです。部分的なクラスを定義している場合。GuidAttributeこれらの両方のクラスにを追加する必要がありますか?

実際、これについて考えると、この質問は属性が何であれ当てはまると思います(例Serializable)。

どんな助けでもいただければ幸いです。ありがとう。

0 投票する
2 に答える
1421 参照

.net - COM 相互運用インターフェイスのキャスト

この記事に従って、次のように C++ COM クラス/インターフェイス宣言を C# に正常に変換しました。

私はこのように使用します:

Foo私の質問は、それが実装されておらずIFoo(実行時でもtypeof(Foo).GetInterfaces()空である)、インターフェースへのユーザー定義の変換が禁止されていることを考えると、これはどのように機能するのでしょうか?

これは、COM 専用に予約された特別な処理ですか? C# の仕様はこれについて何を述べているのでしょうか?

0 投票する
2 に答える
136 参照

c# - COMの共同オブジェクトとインターフェイスC#

私はこれにまったく慣れておらず、msdnのチュートリアルに従っています:http://msdn.microsoft.com/en-us/library/aa645736(v = vs.71).aspx#vcwlkcominteroppart1cclienttutorialanchor2

私の質問は、なぜCOMインターフェイスとCOMCoClassesを使用するのかということです。COM CoClassのインスタンスをインスタンス化し、古いオブジェクトであるがCOMインターフェイスとしてキャストされた新しいオブジェクトをインスタンス化するのは奇妙に思えます。

私は本当にここでイデオロギーを把握したいだけです...どんな助けも役に立ちます。

0 投票する
1 に答える
3229 参照

c# - MATLAB .NET アセンブリ (未定義の関数または変数 'feedforwardnet')

MATLAB 2010b を Visual Studio 2008 Professional と統合しようとしています。

次のMATLABメソッドがあります。

これは、Visual Studio にインポートする DLL ファイルを作成する方法です。

したがって、 MATLAB エンジンの COMインターフェイスを使用して C# から MATLAB 内でルーチンを実行すると、すべてが完全に正常に動作します。

しかし、.NET アセンブリを使用すると、「feedforwardnet」が認識されません。以前は 86 行目でエラーが発生していました ( net(data_inputNN))。そこで、少なくとも「feedforwardnet」を認識するかどうかをテストする行を追加しましたが、認識しませんでした。

注:ニューラルネットワークである「net」を含むファイルからいくつかの変数をロードしています(load(args.workspacePath, '-regexp', '.*');

また、MATLAB メソッドで、保存された「ネットワーク」をファイルからロードし、それを保存してネットワークの処理方法を確認すると、「ネットワーク」ではなく「構造体」として保存されます。

そもそも構造体としてロードしていると思います。

MATLAB 2009b 自体でもこの問題が発生しました。これが、私が現在 MATLAB 2010b を使用している理由です。明らかに MATLAB 2009b には、この特定のニューラル ネットワーク ツールボックスがなかったからです。

以下は、.NET アセンブリを使用するための C# コードです。

Visual Studio で次のエラーが発生します。


注: コンパイラとソフトウェアのバージョン:

コンパイラ: Microsoft Visual C++ 2008 SP1C:\Program Files (x86)\Microsoft Visual Studio 9.0

MATLAB: R2010b (64 ビット)

Visual Studio: MVS 2008 プロフェッショナル (.NET Framework 3.5 SP1)

Microsoft Windows SDK 6.1


最近の更新:

mccにニューラル ネットワーク ツールボックスのパスを追加しました。

今、私はこれらのメッセージを受け取りますmccExcludeFiles.log:

C:\Program Files\MATLAB\R2010b\toolbox\nnet\nnet\@network\network.m

C:\Program Files\MATLAB\R2010b\toolbox\nnet\nnet\nnnetwork\cascadeforwardnet.m によって呼び出されます (ツールボックスのコンパイル規則のため)

C:\Program Files\MATLAB\R2010b\toolbox\nnet\nnet\@network\network.m

C:\Program Files\MATLAB\R2010b\toolbox\nnet\nnet\nnnetwork\feedforwardnet.m によって呼び出されます (ツールボックスのコンパイル規則のため)

0 投票する
2 に答える
1646 参照

excel - Excel で COM サーバー インターフェイスをセットアップするにはどうすればよいですか?

バージョン
Excel 2003
Windows XP
SimaPro 7.3.0 開発者バージョン
職場のコンピューターを使用しているが、このコンピューターの管理者にされ
た Excel/VBA で参照されるライブラリ: Visual Basic for Applications; Microsoft Excel 11.0 オブジェクト ライブラリ。OLE オートメーション; Microsoft Office 11.0 オブジェクト ライブラリ。Microsoft Forms 2.0 オブジェクト ライブラリ。COM+ 1.0 管理タイプ ライブラリ。COM MakeCab 1.0 タイプ ライブラリ。COM+ サービス タイプ ライブラリ。SimaPro ライブラリ
Me: 初心者

私がやろうとしていること 「ライフサイクル分析」情報のデータベースを保存する SimaPro というプログラムを使用しています。このプログラムには、COM インターフェイス機能が組み込まれています。プログラムは、実際に Excel/VBA をサポートしていると述べています (ただし、バージョンは指定されていません)。

このプログラムおよび/または COM サーバーを Excel に接続して、Excel を介して情報を操作できるようにしようとしています。

私がやった
こと 私はリストされている手順を実行しました:
-SimaPro を開く
-COM サーバー
を登録する -次に、以下のコードを VBA に貼り付けて実行しようとしました。このコードはソフトウェア会社から提供されたサンプルコードで、SP.Server、SP.Alias、SP.Login、SP.OpenProject フィールドのみを編集しました (以下は編集したままです)。

実行時エラー: ' -2147418113
(8000ffff)':
自動化エラーの
壊滅的な失敗

質問 -
サーバー名は正しいですか? COMサーバーについて少し読んでいますが、それを入れる方法が正しい「形式」であるかどうかわかりません-
特定の登録済み/未登録のDLLと関係があるのでしょうか? 私は会社の IT 担当者やソフトウェア プログラマーと一緒に仕事をしてきました。誰も COM に精通していませんでしたが、ある人は DLL が問題である可能性があると示唆しました。

ご協力いただきありがとうございます!!

入力しているコードは次のとおりです。

0 投票する
1 に答える
155 参照

c# - p/invoke 操作は、別の関数を実行して終了します

なぜこれが起こっているのかわかりませんが、次のc#インターフェイスで定義できるc#関数の1つを実行すると:

および C++ インターフェイス:

「以前の」インターフェースによって宣言された別の関数にリダイレクトされました。たとえば、次のコマンドを実行しようとすると: config->SetConfig(....)。関数 im がリダイレクトされる (または実行する次のコマンド) は、IClosedCaptionsDecoder2と呼ばれるIClosedCaptionsDecoder2の基本クラスによって実装されます。

このインターフェイスの C++ 宣言は次のとおりです。

そのため、config->SetConfig() は実際には config->xxx() を呼び出します。私の推測では、関数のオフフェストに何か問題があると思われます。

私はC#側(継承など)でリレーション全体を定義しようとしましたが、それもうまくいきませんでした。

助けていただければ幸いです。ありがとう!

編集: GetConfig() を呼び出そうとすると、実際に SetConfig() が実行されました。そのため、ポインターのオフセットなどに問題があることは間違いありません。各関数は、宣言順に前の関数を呼び出しますが、どうすれば可能ですか??

Edit2 : IClosedCaptionsDecoder2 インターフェイスにすべての機能を追加することで、このケースを解決できました。

0 投票する
0 に答える
61 参照

pdf-generation - comインターフェースでの「Let」の意味は何ですか?

これは本当にばかげた質問かもしれません-私はcom-interfaceに不慣れです。グーグルで情報が見つかりませんでした(「let」という言葉はあまりにも一般的です)。

Jacobライブラリを介してPDFCreatorCOMインターフェイスを呼び出すことにより、PDF作成を自動化しようとしています。

PDFCreator WebサイトでAPIを読んでいますが、次を参照してください。

「Let」の意味は何ですか?これらは単なるタイプミスであり、「セット」を意味することになっていますか?

ご協力いただきありがとうございます。