タグ付けされた質問 「com」


5
AccessViolationExceptionの処理方法
.netアプリケーション内からCOMオブジェクト(MODI)を使用しています。私が呼び出しているメソッドはSystem.AccessViolationExceptionをスローしますが、これはVisual Studioによってインターセプトされます。奇妙なことに、AccessViolationException、COMException、その他すべてのハンドラーがあるトライキャッチに呼び出しをラップしましたが、Visual Studio(2010)がAccessViolationExceptionをインターセプトすると、デバッガーはメソッド呼び出し(doc.OCR)で中断します。そして、一歩進んだ場合、catchブロックに入るのではなく、次の行に進みます。さらに、これをビジュアルスタジオの外で実行すると、アプリケーションがクラッシュします。COMオブジェクト内でスローされるこの例外をどのように処理できますか? MODI.Document doc = new MODI.Document(); try { doc.Create(sFileName); try { doc.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH, false, false); sText = doc.Images[0].Layout.Text; } catch (System.AccessViolationException ex) { //MODI seems to get access violations for some reason, but is still able to return the OCR text. sText = doc.Images[0].Layout.Text; } catch (System.Runtime.InteropServices.COMException ex) { …
185 c#  .net  exception  com  modi 

4
C#コンパイラはどのようにしてCOMタイプを検出しますか?
編集:私は結果をブログ投稿として書きました。 C#コンパイラは、COMタイプを魔法のように扱います。たとえば、このステートメントは正常に見えます... Word.Application app = new Word.Application(); ...それがApplicationインターフェースであることを理解するまで。インターフェイスのコンストラクターを呼び出しますか?ヨイクス!これは実際にはへの呼び出しとへの呼び出しに変換さType.GetTypeFromCLSID()れActivator.CreateInstanceます。 さらに、C#4では、refパラメーターに非ref引数を使用でき、コンパイラーはローカル変数を追加して参照渡しし、結果を破棄します。 // FileName parameter is *really* a ref parameter app.ActiveDocument.SaveAs(FileName: "test.doc"); (うん、たくさんの引数が足りません。オプションのパラメーターはいいのではないですか?:) 私はコンパイラの動作を調査しようとしています、そして私は最初の部分を偽造することに失敗しています。私は問題なく2番目の部分を行うことができます。 using System; using System.Runtime.InteropServices; using System.Runtime.CompilerServices; [ComImport, GuidAttribute("00012345-0000-0000-0000-000000000011")] public interface Dummy { void Foo(ref int x); } class Test { static void Main() { Dummy dummy = null; dummy.Foo(10); …

5
C#でUUIDを生成する方法
プログラムで.idlファイルを作成しています。プログラムでインターフェイスとメソッドのUUIDを作成するにはどうすればよいですか。 プログラムでUUIDを生成できますか?

13
Microsoft.Office.Coreリファレンスがありません
codeprojectで提供されている例を使用して、ライブラリMicrosoft.Office.Coreへの参照が見つかる場所を見つけるのに苦労しています。 「参照されているコンポーネント 'Microsoft.Office.Core'が見つかりませんでした。」というエラーが表示されます。 このシステムにインストールされているのはOffice 2007 Enterprise EditionとOutlook 2003だけです。これが原因かもしれませんか?それ以外の場合、どの特定のdllが参照しているはずですか?

2
一言で言えば、COM(コンポーネントオブジェクトモデル)とは何ですか?[閉まっている]
クローズ。この質問はもっと焦点を合わせる必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てるようにします。 7年前に閉鎖されました。 この質問を改善する COMオブジェクトは、OSによって管理される汎用オブジェクトのようです。オブジェクトは厳密なインターフェイスに従い、オブジェクトにクエリを実行して情報を決定できます。これはCOMオブジェクトとは何ですか?
89 c++  com 

5
登録不要のCOMのマニフェストファイルを生成する
マニフェストファイルを使用するアプリケーション(ネイティブ、.NET)があり、グローバルCOM登録を必要とせずに完全に分離して展開できます。たとえば、dbgrid32.ocx comサーバーへの依存関係は、myapp.exeと同じフォルダーにあるmyapp.exe.manifestファイルで次のように宣言されています。 <?xml version="1.0" encoding="utf-8" standalone="yes"?> <assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1"> <assemblyIdentity type="win32" name="myapp.exe" version="1.2.3.4" /> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="dbgrid32.ocx" version="5.1.81.4" /> </dependentAssembly> </dependency> </assembly> dbgrid32.ocxは、独自のdbgrid32.ocx.manifestファイルとともに同じフォルダーにデプロイされます。 <?xml version="1.0" encoding="utf-8" standalone="yes"?> <assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1"> <assemblyIdentity type="win32" name="dbgrid32.ocx" version="5.1.81.4" /> <file name="dbgrid32.ocx"> <typelib tlbid="{00028C01-0000-0000-0000-000000000046}" version="1.0" helpdir=""/> <comClass progid="MSDBGrid.DBGrid" clsid="{00028C00-0000-0000-0000-000000000046}" description="DBGrid Control" /> </file> …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.