問題タブ [managed]
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.
sharepoint - SharePoint オブジェクト モデルを介して管理パスを作成する方法
これは、WSS/SharePoint の第一人者への質問です。
次のシナリオを考えてみましょう。企業の CRM システムと WSS ベースのイントラネットをリンクする ASP.Net Web サービスがあります。私がやろうとしているのは、新しいクライアントが CRM システムに追加されるたびに、新しい WSS サイト コレクションを準備することです。これを機能させるには、管理パスを新しいサイト コレクションにプログラムで追加する必要があります。オブジェクト モデルを介してこれが可能であることはわかっていますが、自分の Web サービスで試してみると失敗します。以下のサンプルコードの抜粋:
このコードは、SPUtility.ValidateFormDigest() で NullReferenceException で失敗します。調査によると、これは権限が不十分であることが原因である可能性があることが示唆されました。SPSecurity.RunWithElevatedPrivileges(AddressOf AddManagedPath) を使用して昇格された権限ブロック内でコードを実行しようとしました。ここで、AddManagedPath は上記のコード サンプルを含む Sub プロシージャです。
これは InvalidOperationException で失敗し、「オブジェクトの現在の状態のため、操作は有効ではありません。」
どこが間違っていますか?
私がなんとかした回避策の 1 つは、Process.Start() を介して STSADM.EXE を呼び出し、必要なパラメーターを提供することであり、これは機能します。
更新: Web サービスの開発中に、組み込みの Visual Studio 2005 Web サーバーを使用して実行しています。これはどのセキュリティ コンテキストで実行されますか? web.config にエントリを配置して、セキュリティ コンテキストを変更できますか?
更新:問題は間違いなく、正しい SharePoint セキュリティ コンテキスト内で Web サービスを実行していないことに関係していると思います。私が提案した回避策を採用し、STSADM にシェルアウトすることにしましたが、これを行うには、Web サービスが実行されるアプリケーション プール ID が SharePoint 管理者のメンバーである必要があります。
c++ - WCF サービスの問題に関するマネージ C++ Web リファレンス
CLSAPIService という名前の単純な WCF サービスを開発しました。契約には UpdateLastOpenCloseCall という名前のメソッドが含まれています。
そのパラメーターの 1 つは単純な DataContract です。
次に、Visual .Net 2005 の Managed C++ で簡単なテスト プロジェクトを作成し、サービスの Web 参照を作成しました。
null
BusinessDataField 構造が WCF メソッドに到達すると、値を割り当てたにもかかわらず、Value プロパティのみが更新され、Name プロパティがになっているように見えます。
何が問題なのですか?
c# - 管理された方法で.NETで親プロセスを取得する方法
.NET で親プロセスを取得する方法をいろいろ探しましたが、P/Invoke の方法しか見つかりませんでした。
c++ - マネージ ラッパーでアンマネージ C++ をラップする
アンマネージ C++ ライブラリがあります。.NET アプリケーションの機能を公開したいと考えています。処理方法がわからない特定の関数が1つあります。
typedef void (free_fn*) (void*); void put (void *data, free_fn deallocation_function);
アイデアは、動的に割り当てられたバッファーを関数に渡し、割り当て解除関数を提供することです。ライブラリはデータを非同期的に処理し、後でデータが不要になったときにバッファを解放します。
ボイド *p = malloc (100); ... バッファを埋める... put (p, free);
この種のものを .NET アプリケーションに公開するにはどうすればよいですか?
.net - マネージド .NET コードでのアンマネージド メモリの割り当て
こんにちは、malloc によって割り当てられたメモリのチャンクを取得し、後で非同期に割り当てを解除するアンマネージ関数があります。マネージドラッパーにラップしたい。次のコードは大丈夫ですか?
c# - アンマネージド/マネージド相互運用 - int[] を渡す際の問題
私は化学の博士号を取得しようとしています。そのため、顕微鏡下でのサンプルのイメージングに役立つソフトウェア アプリケーションを作成する必要があります。この顕微鏡には、xyz ナノポジショニング ステージが取り付けられています。ステージは、ハードウェア ベンダーによって VC++ で記述されたアンマネージ DLL を使用して制御されます。必要なものの詳細を提供できますが、まずはこれから始めましょう。
dll のメソッドの 1 つを使用すると、運動軸の設定を読み取ることができます。
C++ 構文:
BOOL は、規則に従って int 0 または 1 です。
私のC#ラッパーには以下が含まれています:
これは私には正しいようです。ただし、メインアプリケーションで次のようなことを試すと(軸1、2、および3を照会するため):
私は一貫して次のような配列を取得します:
{6, 0, 10} ですが、デバイス自体の表示に従って {0, 0 , 0} を取得する必要があります。補完機能:
BOOL E7XX_SVO (int ID, const char* szAxes, const BOOL* pbValueArray)
ステージに同じステータスビットを設定することもできません...
dll の他のコマンドは完全に機能します。問題なく文字列とダブルスを出し入れできますが、BOOL型は受け渡しできません...
何が悪いのか分かりますか?
c# - C# からマネージド C++ dll を使用する
マネージ C++ を使用して dll を作成しました。現在、C# から使用しようとしています。オブジェクトをプロジェクト参照に追加しました。オブジェクト ブラウザは dll 内のオブジェクトを正しく表示し、オブジェクト ブラウザ内の dll へのパスは実際のパスに対応します。
ただし、C# プログラムを実行すると、次のように表示されます。
未処理の例外: System.IO.FileNotFoundException: 指定されたモジュールが見つかりませんでした。(HRESULT からの例外: 0x8007007E)
他に何をしなければならないか考えていますか?
ありがとう。
java - C++ とマネージでのこれらのポインター エラーの結果
これらのエラーと実行時またはコンパイル後の結果との意味の違いをよりよく理解するために、これをコミュニティ wiki にしています。また、私は Java でのコーディングが長すぎたので、C++ でポインターをよりよく学びたいと考えています。
Edit2:この質問をリファクタリングしています。私が描こうとしている違いは、マネージ コードでは、これらのエラーはすべて例外を介して一様に処理されるということです。ただし、C++ はそれほど単純ではありません。それぞれのケースで、エラー、セグメンテーション違反、回復可能な動作、さらに悪いことに伝播するサイレントエラーが発生する可能性があるかどうかを理解したいと思います。私の新しい具体的な例を見てください (そして、はい、答えは常に「コーディングされているとおりに」であることを知っています。結局のところ、私はプログラマーです。あなたがよく遭遇することの興味深い詳細を知りたいです。)
Edit3:以下では、「クラス」とは、代わりにクラスのインスタンスを意味します。ありがとう
エラー 1: ポインター値が NULL、別名ポインター == 0 です
- マネージ コード: 実行時に NullPointerException をスローします。
- C++: ?
- 例:クラスへのポインタがありますが、0 に初期化されています。関数に渡すとどうなりますか。すなわち。C++ はクラスの表示を一切残しません。これは、パブリックな「プレースホルダー」を連結したものにすぎません。
エラー 2: ポインターは、値が NULL または == 0 であるメモリ内の以前のクラスを指しています
- マネージ コード: メモリ モデルでは許可されていません。参照されたすべてのオブジェクトはメモリに残ります。例外的なケースはありませんか?
- C++: ?
- 例:クラスへのポインタがあり、そのクラスが削除されました。次に、ポインターを引数として関数に渡します。明らかに、発生する問題は、関数がポイント先のクラスをどのように処理するかによって異なります。私の質問は: STL でこれに対するフェイルセーフ処理はありますか? 優れたプロプライエタリ ライブラリ? 平均的なオープン ソース コードは?
エラー 3: ポインタが正しいクラスまたはサブクラスではないクラスを指しています
- マネージ コード: ClassCastException をスローします。
- C++: [間違っていれば訂正] コンパイラは、不正なキャストを許可しないことでこれと戦おうとします。ただし、これが実行時に発生する場合は、未定義の動作が想定されます。これが常に爆発するとは限らない同様のクラスオブジェクトのケースはありますか?
- 例: ポインターが誤って再割り当てされ、その値が別のクラスと完全に等しくなります。この参照されたクラスを渡す関数は、参照するインスタンス変数のオフセットをやみくもに取得すると仮定します。したがって、生のバイナリを間違って解釈します。C++ でこれを防ぐ方法はありませんか? および/または... この能力が永久に悪用される場合はありますか?
エラー 4: ポインターがクラスの中間 (位置合わせされていない) または初期化されていないガベージを指している
- マネージ コード: メモリ モデルでは許可されていません。
- C++: ケース 3 に相当しますか?
- 例: 多くの場合、実際にこれを合法的に使用します。たとえば、STL ベクトルの配列に直接アクセスできます。これは、クラスの中央を指しています。しかし、それは「見逃す」のと同じくらい簡単に思えますか?リンク先のライブラリとは異なるライブラリがロードされた場合など、意図に反してこれが発生する可能性がある一般的な落とし穴はありますか (それを防ぐメカニズムはありますか?)
すべての貢献者に事前に感謝します。