0

画像のピクセルデータを含むBYTE配列を作成しました。画像はグレースケールで、各ピクセル強度は32ビット整数です。ここで、各ピクセル強度(32ビット整数)を読み取り、各ピクセル強度に対していくつかの操作を実行して、変更されたピクセル強度を(再び32ビット整数で)保存します。だから私の質問は、BYTE配列から32ビット(または16ビット)の整数をどのように読み取ることができるかということです。(VC ++ / MFCで動作します)。

ありがとうございました。

4

2 に答える 2

2

の配列から(または) の配列memcpyにデータを取得するために使用します。BYTEint32_tuint32_t

移植性が必要ない場合、アーキテクチャではおそらく最初のアドレスBYTEを aにキャストし、int32_t*それをその場で使用できます。

すべてのデータが常にファイルから取得され、個々のバイトで何も処理する必要がない場合は、int32_t.

于 2012-06-07T15:34:43.393 に答える
0

ベン・ボイト

当然のことながら、私は DLLMain が必須ではないという声明に完全に同意しません。あなたが提供したリンクには、誤解を招く情報が含まれています。

すべての実行可能モジュール (exe または DLL)には ENTRY POINT が必要です。そうしないと、システムはどのプログラムも開始できません。

したがって、エントリ ポイントの定義と実装は必須です。

アンク

Win32 または MFC 拡張 dll を作成すると、ウィザードは両方のプロジェクトにエントリ ポイントを挿入します。MFC は DllMain を使用し、Win32 は _tmain を使用します。これは、Unicode の wmain または ANSI の main として定義されています。どちらも名前のプレースホルダーにすぎず、変更できます (しかし、わざわざする必要はありません)。

MFC 通常の DLLを作成しておく必要があります。このタイプの dll にもエントリ ポイントがありますが、ウィザードによって作成されたソース ファイルには公開されません。これは __DllMainCRTStartup と呼ばれ、crtdll.c にあります。

MFC の通常の DLL の場合、アプリの InitInstance を使用して dll を初期化します。

ちなみに、どの MFC アプリケーションにも WinMain があり、ウィザードによって生成されたコードには公開されていません。

于 2012-06-07T22:41:32.177 に答える