問題タブ [kernel32]

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 に答える
2120 参照

c# - kernel32.dll SleepとThread.Sleep()の違い

次の間に違い(パフォーマンス、実装など)はありますか?

私)

..次にスリープ関数を呼び出します

ii)

0 投票する
4 に答える
8974 参照

c# - DLL 'kernel32.dll' で 'InterlockedIncrement' という名前のエントリ ポイントが見つかりません - VS2005@Win7 64 ビット

Visual Studio 2005 C# プロジェクトに問題があります。月曜日からWindows XPで使用しています。その後、ラップトップが故障し、新しいラップトップに Windows 7 64 ビットがあり、まだ VS 2005 を使用しています。

ソースのコンパイルに問題はありませんが、プログラムを実行すると以下の行で壊れます

エラーが発生します:

EnrtyPointNotFoundException の停止が解除されました

DLL 'kernel32.dll' に 'InterlockedIncrement' という名前のエントリ ポイントが見つかりません

PostgresODBC 64 ビット ドライバーを使用して Postgres 8.4 データベースに接続しようとしています。

解決策または回避策は大歓迎です。私が構築しているソリューションは、Windows XP 32 ビットで実行する必要があることを強調する必要があります。

問題に関する更新された情報(コメントへの私の応答からだけでなく):

  1. VS プロジェクトに新しい接続を追加しようとすると、メッセージERROR [IM014] [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application が表示されました。Windows 7 64bit、Postgres ODBC 64bit Driver ver. 9.00.0200、Postgres 8.4 32 ビット。
  2. Dependency Walkerを使用したことがありません。しかし、 \system32\SysWOW64の両方からkernel32.dllを開きましたが、両方のフォルダーのファイルにInterlockedIncrementが存在します。
  3. いくつかのTableAdapterがあり、それらを使用して Postgres からデータをフェッチします。WinXPを使用していたときに設定されたもので、まだ機能しています。一方、VS2005 でTableAdapterのプロパティの [データ] - > [コマンドテキスト]の横にある [ ... ] をクリックすると、「 ODBC ドライバー接続ユーティリティの呼び出しに失敗しました」というメッセージが表示されます。

編集:上記のポイント1〜3を追加しました。

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

c# - 一般的な DLLImport 宣言の利用可能な C# バージョンはありますか?

C#から呼び出すのに役立つ可能性がある、kernel32 や shell32 などの多くのWin32 API呼び出し/ライブラリがあります。それらを使用する一般的な方法は、 pinvoke.net Web サイトでメソッド定義を検索し、そこから dllimport 定義を使用することです。

このプロセスは、使用するすべての方法で必要です。

[DllImport]一般的な/ほとんどのAPI 関数を含むアセンブリは利用できますか?

C# から (参照として) 直接使用できるものを探しているので、すべての種類の DLLImport ステートメントを自分で収集して組み合わせる必要はありません (エラーのリスクがあります)。

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

c# - 匿名の代理人を固定する必要がありますか?

ファイル コピーの進行状況に関する通知を取得するために、LPPROGRESS_ROUTINE パラメーターに匿名デリゲートを渡して C# アプリケーションから CopyFileEx を呼び出しています。

私の質問は、匿名のデリゲートを固定する必要があるかどうか、およびその理由 (またはそうでない理由) です。

さらに、次の場合、答えは変わりますか?

  1. CopyFileEx はブロックされませんでした。
  2. 匿名ではないデリゲートを渡した場合。

ありがとう!

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

c# - C ++ / CLIで記述されたカスタムインターフェイスをnullに設定すると、プログラムがクラッシュする可能性があります

C ++/CLIで記述されたカスタム.Netインターフェイスがあります。

私のC#アプリケーションでは、インターフェイスは次のユーザーによって使用されます。

上記のコードは、(Visual Studioをインストールした)私のコンピューターではスムーズに実行されますが、(Visual Studioをインストールせずに)別のコンピューターではクラッシュしました。

null割り当てを削除すると、コードは両方のコンピューターで実行されます。

ただし、純粋なC#で別のインターフェイスを作成しました。インターフェイスをnullに設定しても、プログラムはクラッシュしません。

C ++ / CLIインターフェイスの何が問題になっていますか?

[備考]

テスト用に2つの「クリーンな」新しいプロジェクトを作成しました。最初のプロジェクトはC++/ CLIクラスライブラリです([新しいプロジェクト]-> [Visual C ++]-> [CLR]-> [クラスライブラリ])。ライブラリの.hファイルに次の行を追加します。

次に、Windowsフォームアプリケーションプロジェクトを作成し([ネットプロジェクト]-> [Visual C#]-> [Windows]-> [Windowsフォームアプリケーション])、メイン関数でITest変数を宣言します。

プログラムは開発用コンピューター(インストールされているVisual Studio)で実行されますが、他の2台のコンピューターではクラッシュします。クラッシュしたコンピューターの1つは物理マシンで、もう1つは仮想マシンです。

Windows XP Pro SP3、Visual Studio 2010、および.NetFramework4.0を使用しています。

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

excel - Excel VBA:文字列を追加するプロシージャへのポインタとして文字列を渡す方法は?

プロシージャに文字列を in/out パラメータとして渡したい。これは、VBA が通常動作するようなものではないことはわかっていますが、これは特殊なケースによるものです。ファイル形式パーサー用のコードを生成する、既存のコード生成ツールがあります。そして、私はこのコードをハッキングしたくありません。生成された構文は、テキストを使用して vba に簡単に変換できますが、これは大したことではありません (私は既にこれを行っています)。しかし、手順を関数に変更するのは困難です。

私が理解したのは、ポインターを渡すことで文字列を拡張する方法です。しかし、文字列に文字を追加するにはどうすればよいですか?

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

vb.net - 動的 API 呼び出し

kernel32.dll のいくつかの関数を使用したかったのですが、5 つ以上の関数を定義できませんでした。または、理由もなくアンチウイルス プログラムがポップアップしました (Avira)。そこで、トリックを使用して実行時に API 関数を呼び出すことができると考えましたが、唯一の問題は次のとおりです。

LoadLibraryExA と GetProcAdress を使用する必要があることはわかっていますが、それらを使用してカーネルから特定の関数をロードする方法がわかりません。どれでも

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

api - GetProcAdress は常にゼロを返します

本当に不思議な問題に遭遇しました。関数 GetProcAddress を使用すると、常にゼロになります。

「CreateProcess」、「LoadLibrary」などを使用しても、この行は常にゼロを返します。これはなぜですか?

関数の宣言:

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

c# - ReadProcessMemoryが常にゼロを返すのはなぜですか?

以下のコードを考えると、ReadProcessMemoryは常にゼロの配列を返します。実行中のプロセスで文字列(数値の場合があります)を見つけて、その文字列が存在するすべての場所を特定しようとしています。ただし、ReadProcessMemoryは常にゼロの配列を返します。何故ですか?

  • 管理者としてVSを実行し、安全でないブロックを削除してみました。
  • processPointerには、プロセスハンドルの正しい値があります。
  • BaseAddressは1つずつ正しく反復し、探しているメモリの場所のように見えます
  • 明らかに一致するものが見つからないにもかかわらず、かなり速く実行されます。72MBのプロセスの場合は数秒。

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

c++ - 親が殺されたときに子プロセスが殺されるようなCreateProcess?

親プロセスを強制終了すると子プロセスが自動的に強制終了されるようにCreateProcessを呼び出す方法はありますか?

おそらく、プロセスフラグの作成を使用していますか?

編集
解決策は、ジョブオブジェクトを作成し、親と子の両方をジョブオブジェクトに配置することです。彼の親が殺されるとき、子供は殺されます。ここからコードを取得しました。 親プロセスが強制終了されたときに子プロセスを 強制終了します。継承されたハンドルに関する@wilxのコメントに注意してください。