mokeekeeのブログ

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

myreqdcompany.com

myreqdcompany.comによるPC操作

 

「ロボットではない」というページが出たら、ブラウザを一度閉じましょう。

そのまま進めるとブラウザがmyreqdcompany.comからの通知を自動で受け取るようになってしまうようです。

 

取り敢えず簡単な対処法としては、ブラウザの履歴関連をすべてクリアすること。

履歴をクリア画面

 

エクセルのスライダーのつまみが小さい

題名の通りです。

つまみをドラッグして値を変更しながら画像の外観を確認したいのに、小さすぎてポイントしにくい。なんでこれでいいと思ったんだろう。

スライダー(プロパティ)

特定の設定なら何とか直接入力で対処できる。矢印に関しては何度もやったので、もう慣れてしまった。でもその他の調整では時間がかかってしょうがない。

スライダー(プロパティ)2

 



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

C#のビルドプラットフォームにはAnyCPUがあり、動作環境が32ビット、64ビットどちらでも正しくソフトが動くようになっている。

 

そんなソフトで、C++で作成したDLLを使ってみた。

AnyCPUでビルド、実行環境がWin7の64ビット。DLLもWin7の64ビットでビルドされたもの。

すると、下のエラーが出た。

f:id:mokeekee:20201210105256p:plain

DLLエラー

こんな時は以下を確認する。 

f:id:mokeekee:20201210105638p:plain

DLLエラーのときのビルド設定確認
  • プラットフォームとプラットフォームターゲットが両方AnyCPUかx64
  • 32ビットの優先は不使用

AnyCPUで動作環境とDLLが64ビットなのに動かない、という場合は、

これらの再確認を。

 

win7でVC6

今年(2018年になったからなのか)VC6 でビルドが通らなくなった。

 

特定のソースファイルでコンパイルエラーが起きる(C1033)

f:id:mokeekee:20180110145548p:plain

 

これ以外のソースでは正しくデータベースは更新されていくが、毎回特定のソースファイルでデータベースが開けないらしい。

もちろんファイルは存在し、フォルダやファイル属性も特別なものはなし。

 

このエラーが出た後、idbファイルを消してF7(ビルド)すると、ビルドが継続され正常終了する。。。

なんで急にこうなるのだろうか。

ちなみに

つぶつぶなるままに C1033: プログラム データベース '' を開けません。

の方法では総てダメだった。

win10でVC6

去年まで動いていたVC6。今年(2018年になったからなのか)動かなくなった。

ビルド構成をdebugにして、F5を押すと即下の画面が出る。

f:id:mokeekee:20180110144912p:plain

出る直前画面がちらついていたのでキャプチャすると、以下の場所で止まっているよう。mapファイルによると、_WinMain16に入る前らしい。

f:id:mokeekee:20180110144851p:plain

debug版のEXEをエクスプローラから直接実行すると問題ない。VC6のデバグ機能の問題のようだが。。。

古いソフトをこれからも更新していかないといけないのでVC6が必要なのにこれでは作業ができない。(使っているライブラリが古いのでVC6でないとビルドできない)なんか解決策はないんか。

DLL内の動的配列

DLLにポインタを渡し、DLL内で自動でメモリを確保する関数があるとき、

void DLL_Something(char *p)

{

int size=xxxxxxxx;      //size値の計算

p = new char[size];

}

 

それを開放するのはDLLであって、EXEが勝手にやってはならない。つまり、

char *p;

DLL_Something(p);

DoSomething(p);

delete[] p;

はダメ。

例え確保したメモリのアドレスがあってもダメ。DLLにやらせる。

(といっても、DLLが解放のための関数を持っていてEXEがそれを呼ぶのは面倒で忘れることもあるのでこの方法はよろしくない。)