クロノス・クラウン - 記事検索

おすすめ
自作の本やゲーム他を販売
便利なWebアプリが多数
ソフトウェア
めもりーくりーなー Winのメモリーを掃除
Novel Supporter 小説推敲補助ソフト
PCソフト まとめ
Webサービス
Kindle Unlimited マンガまとめ 巻数の多いマンガを集計
ゲームブック
闇の聖杯の儀式 電書のゲームブック
ゲーム
Little Land War... Win向けSRPG
Little Bit War Switch向け高速RTS
TinyWar... 1面数分の8bit風RTS
EX リバーシ 変形盤面、盤面多数
no link
2006年08月24日 17:42:41
 今日は少しプログラムのお話。

 私は普段、CやC++は使っていません。簡単なツールはWSHやHSPでプログラムを書くことが多いからです。

 しかし、DLLを作るときは話が違います。その際はCやC++用のコンパイラが必要になります。

 というわけで、DLLのコンパイルには「lcc-win32」を使っているのですが、昨晩から書いていたプログラムがなぜかきちんと動作しない。

 プログラム自体は合っているのに、どうしても正しい値が取れない。

 似たようなことがないか、インターネットで調べまくったり、実験をしまくったりしたのですが、まったく原因は不明。

 半日以上経って、ある可能性に気付きました。

「lcc-win32が古いのでは?」



 その根拠となったのは、「DWORDLONG」にビットシフトをしようとしたらコンパイルエラーが出たこと。

 それは「DWORDLONG」という値を正しくサポートしていない。つまり、そういった値があまり必要でない時代のコンパイラなのではないか?

 というわけで、いつも使っている「lcc-win32」をダウンロードした日付を調べてみました。2001年7月10日。

 これは、可能性として非常に高いなと思ったので、最新の「lcc-win32」をダウンロードしてみることにしました。

□lcc-win32
http://www.cs.virginia.edu/~lcc-win32/

 最新版をインストールしたら、なぜか「wedit.exe」が起動しない。えー、どういうわけですか(泣

 仕方がないので、古い「wedit.exe」を探そうと思い、QSS Productsというページに飛んでみる。

□QSS Products - lcc-win32
http://www.q-software-solutions.de/products/lcc-win32/

 「Dec 2005 Wedit」を試してみるが、やっぱり起動しない。さらに「Nov 2005 Wedit」を試してみたら起動した。

 やった。

 これで改めてコンパイルしたら、無事にコンパイルできて問題が解決しました。

 よかったです。



 さて、何がしたかったかというと、メモリー量を取得す「GlobalMemoryStatus」と「GlobalMemoryStatusEx」の分岐処理を実装したかったわけです。

 「GetProcAddress」で、「GlobalMemoryStatusEx」があればこちらを使うという分岐処理。

 「MEMORYSTATUSEX」構造体が「DWORDLONG」を使っているので、古いコンパイラで正しくコンパイルできなかったようです。

 こんな理由で無駄な時間を。

 「めもりーくりーなー」を大容量メモリー(2GB超)のマシンで使っている人もいるようなので、この処理が必要だったわけです。

 最近問い合わせが多いので。

 問題は、私自身が大容量メモリーのマシンを持っていないので、2GB超でもきちんと動くかは確認できないことですが。理論上は大丈夫なはずなのですが。

 でもまあ、うまくコンパイルできたのでよかったです。
最新20件 (全て見る)

オススメ (全て見る

動画講座 (全て見る

サイト目次

おすすめ

PCソフト/Webアプリ

ゲーム

マンガ

記事

柳井の同人活動

開発

携帯・スマホ

アナログ・ゲーム

Cronus Crown(クロノス・クラウン)のトップページに戻る
(c)2002-2025 Cronus Crown (c)1997-2025 Masakazu Yanai
ご意見・お問い合わせはサイト情報 弊社への連絡までお願いします
個人情報の取り扱い、利用者情報の外部送信について