mokeekeeのブログ

初心者レベルのプログラミングと英文の備忘録とその他

C++

C# DLL読み込みエラーとAnyCPUについて

C#のビルドプラットフォームにはAnyCPUがあり、動作環境が32ビット、64ビットどちらでも正しくソフトが動くようになっている。 そんなソフトで、C++で作成したDLLを使ってみた。 AnyCPUでビルド、実行環境がWin7の64ビット。DLLもWin7の64ビットでビルドされ…

win7でVC6

今年(2018年になったからなのか)VC6 でビルドが通らなくなった。 特定のソースファイルでコンパイルエラーが起きる(C1033) これ以外のソースでは正しくデータベースは更新されていくが、毎回特定のソースファイルでデータベースが開けないらしい。 もち…

win10でVC6

去年まで動いていたVC6。今年(2018年になったからなのか)動かなくなった。 ビルド構成をdebugにして、F5を押すと即下の画面が出る。 出る直前画面がちらついていたのでキャプチャすると、以下の場所で止まっているよう。mapファイルによると、_WinMain16に…

DLL内の動的配列

DLLにポインタを渡し、DLL内で自動でメモリを確保する関数があるとき、 void DLL_Something(char *p) { int size=xxxxxxxx; //size値の計算 p = new char[size]; } それを開放するのはDLLであって、EXEが勝手にやってはならない。つまり、 char *p; DLL_Some…

変数の型

C#ではlongが8バイト! C++で作られたバイナリデータをC#で読み込むときなど注意です。 C++ - C# 符号付8ビット整数 char - sbyte 符号無し8ビット整数 unsigned char - byte 符号付16ビット整数 short - short 符号無し16ビット整数 unsigned short - ushor…