共有メモリを持つDLLを作りました
機能は単純です
(1)カウンターをアップしてその値を返す ⇒ CountUp()
(2)カウンターの現在値を返す ⇒ TotalCount()
#pragma data_seg(".HShared")
static int m = 0;
#pragma data_seg()
#pragma comment(linker,"/Section:.HShared,rws")
int WINAPI DllMain(HINSTANCE hInst, DWORD fdwReason, PVOID pvReserved)
{
return TRUE;
}
EXPORT int CALLBACK CountUP()
{
m++;
return m;
}
EXPORT int CALLBACK TotalCount()
{
return m;
}
このDLLは多数のアプリから呼ばれます
当然同時に呼ばれることもあるでしょう
カウンター m には排他処理を施してありません
大丈夫でしょうか?
それとも排他は Windows様 がしてくれているのでしょうか?
色々と調べてみましたが良く分かりません
宜しくご教授お願い申し上げます
No.3
- 回答日時:
Win32API のミューテックス や セマフォー 辺りを調べる
と色々、説明があると思います。
http://msdn.microsoft.com/ja-jp/library/cc429064 …
http://msdn.microsoft.com/ja-jp/library/cc429076 …
ありがとうございます
排他を自分でやることに致しましたので参考にさせて頂きます
これからも色々とお世話になると思います
宜しくご指導尾お願い申し上げます
ありがとうございました
No.2
- 回答日時:
例えば
EXPORT int CALLBACK CountUP()
{
m++;
←ここで別アプリに切り替わってCountUPが呼ばれたらどうなるでしょう?
return m;
}
あるいは
実際にはCの命令単位ではなく、コンパイルされた機械語単位で動作するのですから
m++ が次のようなコードになった場合
A←m ;/* AはCPUの演算用レジスタ */
A←A+1;
←ここで別アプリでCountUPが最後まで実行されてから戻ってきたらどうなるでしょう
m←A;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- C言語・C++・C# 変数のスコープ 5 2023/05/27 17:50
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# leetcode 155 minstack 1 2022/05/07 16:43
- Java java 引数 戻り値のあるメソッド 3 2023/02/12 06:23
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセスVBAのMe!と[ ]
-
VBA エンターキーでイベントに...
-
ユーザーフォームのインポート...
-
現在アクティブになっているオ...
-
コードでオブジェクトを最前面に
-
PowerpointVBAで指定のShapeオ...
-
カッコ付けのオブジェクト名を...
-
エクセル2000VBAでオブジェクト...
-
日本語の文字化けを直す方法
-
Excel VBAでマウスの左クリック...
-
VBAで選択範囲外の図形(オブジ...
-
【エクセル】複数のTextBoxに共...
-
エクセルのデータをwebフォーム...
-
サブルーチンにオブジェクト名...
-
Accessのフォーム上にエクセル...
-
ワードでの操作方法について、...
-
VBからCrystalReportsへSQL文を...
-
Excel2007 でのチェックボック...
-
エクセルVBAでセル番地を指定し...
-
VB6にて文字型変数の内容をオブ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセスVBAのMe!と[ ]
-
VBA エンターキーでイベントに...
-
Excel VBAでマウスの左クリック...
-
文字列で小数点以下の0を削除し...
-
【エクセルのマクロ】クリップ...
-
エクセルVBAでセル番地を指定し...
-
Excel2007 でのチェックボック...
-
Accessのフォーム上にエクセル...
-
日本語の文字化けを直す方法
-
エクセルのデータをwebフォーム...
-
現在アクティブになっているオ...
-
PowerpointVBAで指定のShapeオ...
-
コードでオブジェクトを最前面に
-
【エクセル】複数のTextBoxに共...
-
Imageコントロールにグラフを表...
-
ユーザーフォームのインポート...
-
Access からオブジェクトとして...
-
構造体の静的な初期化
-
Excel VBA でPictureBoxオブジ...
-
「SHDocVw」の意味
おすすめ情報