問題タブ [interopservices]

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 投票する
2 に答える
347 参照

c# - C# で .inl および .h ファイルを参照する方法

更新 1:

.lib ファイルを参照できるかどうか疑問に思っていますが、参照できないようです。これが事実で、C++ プロジェクトのソース コードがない場合、そのメソッドを使用するにはどうすればよいですか? ところで、私は FastCV ライブラリを使用しています。


C# コードから C++ メソッドを呼び出す必要がある状況に遭遇しました。C++ で生成されたファイル構造:

C# から C++ メソッドを呼び出す方法を知っています。

しかし、.h ファイルと .inl ファイルも C# プロジェクトに含める必要があると思います。では、それらをどのように含めるか?

どうもありがとうございました。

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

c# - IntPtr からのビットマップの作成

USBビデオカメラAPIの使用方法を理解しようとしていますが、これはやや明確ではありません(少なくとも、開発者からの以前の知識に頼っているようで、「全体像」を理解していないと思います。しゃれが意図されています) )。

データを正常に受信している次のイベント ハンドラーがありますが、現時点ではコンソールにのみ出力できます。

これにより、次の結果が得られます。

したがって、これは画像のサイズ (1280 x 960) と一致しており、1228800 はピクセル数 (バッファー サイズ) であり、1for ピクセル フォーマットはPIXEL_FORMAT_08_MONO_OR_RAWカメラ API ピクセル フォーマット列挙 (この BW カメラとも一致) に従っていることを意味します。

私の質問は:

System.Drawing.Bitmapこの情報を取得してオブジェクトを作成するにはどうすればよいですか?

私はすでにこれを試しましたが、成功しませんでした(明らかに、グレースケール画像は実際にはインデックス化されていません...):

これにより、最終的に「一般的な GDI+ エラー」が発生します。

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

c# - メッセージ c# での InteropServices トリガー

長年の読者、初めてのポスターはこちら:)

私は現在、相互運用機能の使用方法を学ぼうとしていますが、別のプログラム (プログラム B) のポップアップ メニューに追加のオプションを追加するプログラム (プログラム A) を何らかの方法でセットアップできるかどうか疑問に思っていました。

編集:プログラム B は私のプログラム I ではないため、直接制御することはできません。基本的にプログラム B は、機能を追加したいシェルフウェア プログラムです。

私が達成したいことは次のとおりです

  1. ユーザーがプログラム A を開始する
  2. ユーザーがプログラム B を開始する
  3. ユーザーがオブジェクトを右クリックしてポップアップ メニューを表示する (プログラム B)
  4. ユーザーがオプション ID 6 を選択 (プログラム B)
  5. プログラムAはこれに気づきます
  6. プログラム B は別のポップアップ メニューを表示します (プログラム B 内)。
  7. プログラム A は、プログラム B 内のこのメニューに別のオプションを追加します
  8. ユーザーがこの新しいオプションを選択すると、プログラム A の関数が呼び出されます。

これは InterOp でも実現できますか?

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

c# - C++ dll を使用した C# IteropServices - Excel で動作しますか?

C# プロジェクトで動作させようとしている C++ dll があります (C++/C については何も知りませんが、ソースがあり、VS2013 で開いてビルドできます)。

dll には Excel VBA で動作する例が付属していましたが、C# で動作させることはできません。

私が直面し続けるエラーは...

追加情報: PInvoke 関数 'RMTest!RMTest.PInvokeTest::encode_eib_d' の呼び出しにより、スタックのバランスが崩れました。これは、管理された PInvoke 署名が管理されていない署名と一致しないことが原因である可能性があります。

私のC#テストコードは次のとおりです...

参考までに、Excelでの作業例、VBAは次のとおりです...

C++ dll の関連するコードのスニペット (私が知る限り) は次のとおりです...

ヘッダー (.h):

.cpp

.def:

入力パラメーターで MarshalAs などのさまざまな組み合わせを試したり、文字列の代わりに StringBuilders を試したりしましたが、一方から他方へのメソッド署名に満足していないように聞こえます。

VBAで動作するのはとてもイライラします。

さらに情報が必要な場合は、お問い合わせください。

ありがとう。

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

comexception - アプリケーションでの COM 例外

内部アプリケーションをアップグレードしようとしています。インフラストラクチャは 2008 から Windows Server 2012 に移行します。アプリケーションは、モデル テンプレートからプレゼンテーションを構築します。

Interops に関連付けられているように見える添付の COM Exception を取得し続けています。

PowerPages (オフィス 14.0)

ドキュメント: Model.ppt

コマンド: {SET PrevPeriodEnd user.PreviousPeriodEnd(PGFromDate)}

エラー:

~~ コール スタック ページ 6.9.1 (ビルド 021)~~

メンバーが見つかりません。(HRESULT からの例外: 0x80020003 (DISP_E_MEMBERNOTFOUND))

スタックトレース:

Microsoft.Office.Interop.Word.ApplicationClass.Run (文字列マクロ名、オブジェクト & varg1、オブジェクト & varg2、オブジェクト & varg3、オブジェクト & varg4、オブジェクト & varg5、オブジェクト & varg6、オブジェクト & varg7、オブジェクト & varg8、オブジェクト & varg9、オブジェクト & varg10、オブジェクト & varg11、オブジェクト & varg12、Object& varg13、Object& varg14、Object& varg15、Object& varg16、Object& varg17、Object& varg18、Object& varg19、Object& varg20、Object& varg21、Object& varg22、Object& varg23、Object& varg24、Object& varg25、Object& varg26、Object& varg27、Object& varg28、 Object& varg29、Object& varg30)

Pages.PowerPages.Evaluate.DoEvaluate (コレクション cExpression) で

Pages.PowerPages.Evaluate.Eval (文字列 sExpression) で

Pages.PowerPages.Commands.HandleSet (文字列 & sStr、形状 & oShape、TextRange & oRange) で

Pages.PowerPages.ProcessFile.ProcessShape (Presentation& oPresentation、Shape& shp、String& sOpenStr、String& sCloseStr、Boolean& bExit、Int32& nSlideID、Int32& nSlidesToReset、Boolean& bAgenda) で

Pages.PowerPages.ProcessFile.ProcessPresentation (Presentation& oPresentation、String& sOpenStr、String& sCloseStr、Boolean& BMaster、Boolean& bAgenda) で

Pages.PowerPages.modAmain.GenerateModel (String[]& aSelectedComponent, Boolean& bNormal) で

Pages.PowerPages.modAmain.Generate2 (ブール bJobRun) で

Pages.PowerPages.ComPowerPoint.Generate (文字列 sThreadID、Int32 nJobID、文字列 sPortcode、文字列 sManager、文字列 sBusinessUnit、Int32 nJobAccountStatusID、オブジェクト oBatch、文字列 sOutputFolder、アプリケーション oPowerPointApp) で

~~~~追加情報~~~~

例外の種類: COMException

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

コンピュータデータ:

オペレーティング システム名: Microsoft Windows Server 2012 R2 Standard

バージョン: 6.2.9200.0

プラットフォーム: Win32NT

物理メモリ - 合計: 4294430720、利用可能: 2845433856

仮想メモリ - 合計: 2147352576、使用可能: 1652203520

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

c# - ExcelのinteropService C#でのCOMException

一部のマシンにプログラムをインストールしているときに非常に厄介な問題に直面しています.C#アプリケーションを開発しましたが、すべて問題なく動作し、別のマシンで問題なくテストしましたが、クライアントマシンにインストールすると、次の問題が発生します:

System.Runtime.InteropServices.COMException (0x800A03EC): HRESULT からの例外: Microsoft.Office.Interop.Excel.Range の System.RuntimeType.ForwardCallToInvokeMember (文字列 memberName、BindingFlags フラグ、オブジェクト ターゲット、Int32[] aWrapperTypes、MessageData& msgData) での 0x800A03EC .set__Default(Object RowIndex, Object ColumnIndex, Object ) at SchoolMgmt.certificate_succession.sum_operation()

プログラムはExcel、Office Microsoftと通信するため(別のOfficeバージョンをインストールしようとしましたが成功しませんでした)。
私は解決策をたくさん探しましたが、問題は次のパスの許可の問題であると主張されているため、何も機能しません

C:\Windows\ System32\config\SystemProfile

私のテストマシンではプログラムがスムーズに正常に動作するのに、クライアントのマシンでは実行されないのはなぜなのか、本当に頭がおかしくなりました!!
任意の提案をお願いします。