あらかじめNOT演算で暗号化されたリソースファイルを復元するコードです。
〜〜〜
char a='a';
void *file = &a; //初期化
int size,ghan;
char b='b';
char *p = &b; //初期化
GetResourceInfo(MAKEINTRESOURCE( IMAGE ),"DATA",&file,&size); //リソースからNOT演算で暗号化されたファイルをロード
p=(char*)file;
for(int i=0;i<size;i++){ //NOT演算
p[i]=~p[i];
}
file=p;
ghan = CreateGraphFromMem( file, size );
〜〜〜
これをコンパイルすると暗号化の復元もでき、画像も表示されるのですが、以下のエラーが出ます。
test.exe の 0x01553986 で初回の例外が発生しました: 0xC0000005: 場所 0x01e22268 に書き込み中にアクセス違反が発生しました。
test.exe の 0x01553986 で初回の例外が発生しました: 0xC0000005: 場所 0x01e23000 に書き込み中にアクセス違反が発生しました。
test.exe の 0x01553986 で初回の例外が発生しました: 0xC0000005: 場所 0x01e24000 に書き込み中にアクセス違反が発生しました。
test.exe の 0x01553986 で初回の例外が発生しました: 0xC0000005: 場所 0x01e25000 に書き込み中にアクセス違反が発生しました。
test.exe の 0x01553986 で初回の例外が発生しました: 0xC0000005: 場所 0x01e26000 に書き込み中にアクセス違反が発生しました。
test.exe の 0x01553986 で初回の例外が発生しました: 0xC0000005: 場所 0x01e27000 に書き込み中にアクセス違反が発生しました。
test.exe の 0x01553986 で初回の例外が発生しました: 0xC0000005: 場所 0x01e28000 に書き込み中にアクセス違反が発生しました。
for文の部分をコメントアウトすると起きなくなるので、ここが原因かとは思うのですが・・・。
for文の書き方が間違っているのでしょうか?