問題タブ [createinstance]

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

c# - Activator.CreateInstanceを使用するときに注入されたインスタンスを解決する

CastleWindsorにを使用して作成されたオブジェクトの依存関係を解決させる方法を理解しようとしています Activator.CreateInstance

現在、この方法でオブジェクトを作成すると、作成されたオブジェクト内の依存関係が解決されません。依存関係を解決しながら同じことを行うWindsorメソッドがあるかどうかを調べてみましたが、これまでのところ何も見つかりませんでした。

このようにインスタンスを作成する理由については、基本的なテキストゲームを少し楽しんでいます。インスタンスはユーザー入力コマンドに基づいて作成されているため、文字列に基づいてインスタンスを作成する必要があります(現在、コマンドはディクショナリでタイプにマップされており、上記の方法を使用して作成されます)。

助けてくれてありがとう。

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

c# - C#でIDispatchExをどのようにインスタンス化しますか?

これが私の最初のSO質問です!COMオブジェクトをインスタンス化し、IDispatchExにキャストして、そのメンバーを列挙できるようにします。次に例を示します。

私のIDispatchExは、GetNextDispIDとGetMemberNameがintを返すことを除いて(私のWebサイトではなく)このWebサイトのものと同じです( MSDNで説明されているようにHRESULTに使用したい)。

上記の例は機能しません。Active ScriptingキャストからIDispatchExインターフェイスにキャストするようにCOMオブジェクトをインスタンス化する方法はありますか?

ありとあらゆる助け/提案をありがとう!

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

c# - CreateInstanceの戻り値をキャストする方法

タイプが不明な場合、CreateInstanceからの戻り値をどのようにキャストしますか?

たとえば、このコードでは次のようになります。

mInfo.ReturnTypeに含まれるものにoをキャストするにはどうすればよいですか?

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

com - Excel.Application に IDispatch.GetTypeInfo() を使用すると Visual Studio IDE がクラッシュする

COM コンポーネントとやり取りするアプリケーションを作成していますが、Visual Studio 10 IDE でアプリケーションを実行しているときに Excel.Application コンポーネントを操作しているときに問題が発生しました。致命的なメモリ不足エラーが発生しています。EXE を実行するだけですべてが正常に動作しますが、デバッグ機能が大幅に制限されます。この方法でアクセスした他のすべての COM コンポーネントは、自家製のコンポーネントと市販のコンポーネントの両方を含め、正常に動作します。

このクラッシュを示すコンソール アプリを次に示します。簡単にするために、すべてのエラー処理を削除しました。問題のあるコードの周りに try/catch ブロックを配置しても役に立ちません。このプロジェクトには、CustomMarshalers.dll への参照が必要です。

問題は単に Excel のサイズによるものだと思います。

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

c++ - C++ のファクトリ パターン: 明示的な createInstance() メソッドを自動的に生成する

私はC++フレームワークを書く際に問題があり、ユーザーはそれを使用できるよりもオーバーヘッドが少ないはずです。ユーザーは、フレームワークの BaseClass から派生したクラスを含む共有ライブラリを作成し、その派生クラスのインスタンスを返すために extern "C" createInstance() メソッドを実装することで、自分の作業をフレームワークに公開できます。したがって、フレームワークは、dlsym() を使用して共有ライブラリを介して createInstance-Method を呼び出すことにより、ユーザー クラスにアクセスできます。

フレームワーク:

私の質問: ユーザーが考える必要がないように、各ユーザー ライブラリで冗長な UserXcreateInstance() メソッドを生成することは可能ですか?

テンプレート+マクロで可能だと思っていましたが、これを行う方法はまだ見つかりません...

別のアプローチとして、dlsym と適切な名前マングリングを介して任意のユーザー クラスのコンストラクターを直接呼び出すことを考えていました。(構成ファイルから名前空間とクラス名を知っています)しかし、これが適切な解決策だとは思いません。特に、コンストラクター呼び出しは通常の関数呼び出しと同じではありません...しかし非常に興味深い...

0 投票する
6 に答える
30747 参照

c# - Activator.CreateInstance(type) に代わるオブジェクトの高速作成

アプリケーションのパフォーマンスを改善しようとしています。多くの Activator.CreateInstance 呼び出しがあり、問題を引き起こしています。

インターフェイス (ITabDocument) に基づいて多くのクラスをインスタンス化し、いろいろ調べた後、次のコードを使用することを考えました。

このコードは、私たちが持っていた Activator.CreateInstance コードを使用するよりも優れているわけではありません (実際、わずかに遅くなります)。

これがなぜなのか疑問に思っています。私がやっていることは次のとおりです。

上記を支援するオブジェクトを作成するより良い方法はありますか? 具体的なタイプがわからない場合は少し難しいです。

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

c# - Silverlight Windows Phone 7のActivator.CreateInstance(string assemblyName、string typName)

Windows Phone 7アプリでActivator.CreateInstance(string assemblyName、string typName)(http://msdn.microsoft.com/en-us/library/d133hta4%28v=VS.100%29.aspx )を使用したい。しかし、それはうまくいかないようです。

解決策や回避策のアイデアはありますか?

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

c# - CreateInstanceFromAndUnwrap が Web コンテナーで機能しないのはなぜですか?

こんにちは、次のようなコードがあります。

私のテスト コード (つまり、Web コンテナー内ではない) では、魅力的に動作し、まったく文句を言わずにアセンブリをロードします。しかし、それを自分のアプリケーション (Web コンテナー、II7/ または VS2010 dev コンテナー) で実行すると、突然、次のように不平を言い始めます。

「メンバーの型が解決されていません '... , ... , Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'."}"

アプリケーション呼び出しとまったく同じパラメーターを使用して Load() メソッドを呼び出すようにテスト ケースを変更したところ、テスト コード (Web コンテナーの外部) は正常に動作し、アプリケーション コードは上記のエラーをスローします。

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

c++ - CreateInstanceは「指定されたモジュールが見つかりませんでした。」を返します。

私はでWindows 2000動作するように動作するプログラムを取得しようとしていWindows 2003ます。プログラムを動作させるためにこれまでにやらなければならなかったことはすべてWindows 2003、正しくない構成に関係していました。現在、このコードは次のとおりです。

戻ってきました:

または言い換えれば:

他に2つのプログラムと別の.dllがあり、それらのクラスのインスタンスを正常に作成できます。しかし、これは失敗するようです。

私は以前Procmon、プログラムが何を見つけられないかを理解しようとしましたが、プログラムがProcmon何かを見つけられなかったことを示す可能性のあるものは何も表示しませんでした。

OleView、クラスのインスタンスを作成しようとすると、次の画像が表示されます。

IClassFactory::CreateInstanceが失敗しました。 指定されたモジュールが見つかりませんでした。 重大度:SEVERITY_ERROR、ファシリティ:FACILITY_WIN32($ 8007007E

画像の左側を見ると、のインスタンスを作成しようとするPFComgMngと同じエラーが発生します。(PFAdapterEnvそしてPFCompMng同じプロセスを使用しますPFAdapterMng.exe。)ただしPFMQMonitor、、、PFSendおよびPFTraceすべてが正しく機能します。(、、、およびを使用PFMQListen.exeします。)PFSend.dllPFTraceService.exe

私が注意したかったもう1つのことは、次のコードです。

から以前に呼び出された場合は、完全に正常に機能しPFAdapterMng.exeます。したがって、モジュールを正常に見つけてインスタンスを作成できるように見えPFAdapterMng.exeますが、クラス内のいずれかのインスタンスを作成しようとする他のプロセスPFAdapterMng.exeはモジュールを見つけることができず、このエラーが発生します。

この特定のケースを支援していないのでProcmon、他のプロセスがモジュールを見つけるのを妨げているものを理解するために私が何ができるかを誰かが知っていますか?

アップデート:

サービスとして実行する必要があるため、Dependency Walkerプロファイリングで実行できません。プロファイリング中に実行し、のインスタンスを作成して、メッセージボックスが表示された理由を調べようとしました。残念ながら、何かが欠けていることを示していませんでした。PFAdapterMng.exePFTraceService.exeDependency WalkerOleViewPFAdapterEnvPFCompMngModule not foundDependency Walker

UPDATE2:

ログに何かが足りなかったProcmonので、通話をステップオーバーする直前と通話の直後にイベントをキャプチャして新しいログを作成しましたCreateInstance。多分誰か他の人が見て、私がそれを逃したかどうか教えてくれるでしょうか?何かを見つけることができなかった兆候を見つけることがPFMQListen.exeできません。

Procmonこれは、ファイル、.csvファイル、およびファイルを含むzipフォルダーへのリンク.xmlです。

http://www.mediafire.com/?07jq8zj7emmpsvd

UPDATE3:

そのため、Dependency Walkerプロファイルモードで実行して、のインスタンスを作成することができましたPFAdapterEnvDependency Walker欠落しているものは見つかりませんでした.dll

したがって、Procmon何も表示されません。また、表示されませんDependency Walker。アセンブリレベルでコードをステップ実行していたollydbgところ、関数でエラーが発生したことに気付きましたNdrClientCall2。これが何か意味があるのか​​わかりません。

他に何を試すことができるかについてのアイデアはありますか?人々は私がこの問題を解決するのを助けるためにもっと多くの情報を必要としていますか?もしそうなら、聞いてください。

UPDATE4:

を使っ/RegServerてアプリケーションを登録してみましたが、うまくいきました。以前に使用してみましたが、を使用/RegServerしてすべての登録を解除し/UnregServerました。今回は、別のIDでComponent Services実行したかったので、必要なコンポーネントも削除しました。PFAdapterMng

/RegServerしたがって、アプリケーションを実行してダブルクリックすると、すべてが機能するように見えます。ただし、すべてを別の構成で実行したいと思います。

アプリケーションを次のように動作させるためにすべてを構成するにはどうすればよいですか。

PFAdapterMng.exe-として登録し/Service、別のIDで実行するservices.msc PFTraceServer.exe-として登録し/Service、別のIDで実行するservices.msc

PFMQListen.exe-/RegServerによって開始されるものとして登録しますPFAdapterMng PFMQSend.dll-に登録Regsvr32され、によってロードされますPFAdapterMng

ありがとう、Krzys

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

.net - null を返す System.Activator.CreateInstance

私が抱えている問題は、CreateInstancenull を返すことです。

コードは次のとおりです。

AttackSpecialAttackはどちらも基本情報を格納するクラスで、 から継承されUnityEngine.Objectます。

Attmonospattmonoは両方ともMonoScript配列で、attmono16 個とspattmono4 個を保持できます。

彼らはそこから情報を取得します。

MonoScriptオブジェクトがどのクラス タイプであるかを保持するものと考えることができます。Debug.Printこれらのそれぞれをステートメントでチェックしましたが、割り当て時に両方とも null ではありません。

これがSpecialAttackコードです。

最近これをテストしました

そして、それは実際にはnullだったので、アクティベーターがタイプを見つけることができないと私は信じているので、ここから何をすべきかわかりません。