2010/8/22:本掲示板は閲覧専用です。データが一部破損しておりますがご了承ください。
  新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃ホーム  
423 / 2351 ←次へ | 前へ→

【1951】呼び出し規約か…?
←back ↑menu ↑top forward→
 DULL WEB  - 06/3/22(水) 18:40 -

引用なし
パスワード
   ▼ひよひよさん:

>ということですが、CrystalCPUID.exe だけ最適化でも OK だったりしませんか?
両方の最適化をOFFにしないとダメです。

>なんにせよ、次回リリースからは最適化オフで出したいと思います。
個人的には最適化ON/OFFの両方を公開する方が良いと思います。
OFFバ〜ジョンは頻繁にバ〜ジョンアップしないで確認用とか。

スタックが狂っているようなので原因を考えると
・アセンブラでPUSH/POP等を間違っている。
・呼び出し規約の_stdcallと_cdeclが間違っている。

後者を疑って/Gz(強制 _stdcall使用)を試しました。
CrystalCPUID.exe は libpng の仕様でビルド失敗。
SysInfo.DLL は /Gz を通過したので実行してみました。

結果は起動中に「ページ違反」が発生。
アドレスがいつもの落ちるアドレスと同じだったので
もしかしたらこれが原因かも知れません。

過去に私も libpng を使った事がありますが
ファイル処理で関数ポインタを使う方法があります。
このへんで呼び出し規約を間違ったりとか…?

libpng のソ〜スを持ってきて -DPNGAPI __stdcall で
ビルドして回避できないかと考えたりします。

さらに pcidll.c の initialize() の
char path[MAX_PATH];

これだとパスが245文字以上のフォルダで実行されると
path[] にはファイル名も入るのでバッファが
オ〜バ〜フロ〜してしまう可能性があると思います。
(ファイル名が固定なので確立はかなり低いですが…)

ではでは。

182 hits

【1949】SysInfo.vxd の改良&修正 DULL 06/3/21(火) 10:00
【1950】Re:SysInfo.vxd の改良&修正 ひよひよ 06/3/21(火) 22:03
【1951】呼び出し規約か…? DULL 06/3/22(水) 18:40
【1952】Re:呼び出し規約か…? ひよひよ 06/3/22(水) 21:47
【1953】Re:呼び出し規約か…? DULL 06/3/22(水) 22:57
【1954】あぅあぅ (T_T) DULL 06/3/23(木) 22:04
【1955】Re:あぅあぅ (T_T) ひよひよ 06/3/23(木) 22:09
【1959】CrystalCPUID 4.7.4.295 試しました DULL 06/4/2(日) 22:34
【1960】Re:CrystalCPUID 4.7.4.295 試しました ひよひよ 06/4/3(月) 21:51
【1961】Re:CrystalCPUID 4.7.4.295 試しました DULL 06/4/4(火) 21:15
【1962】Re:CrystalCPUID 4.7.4.295 試しました ひよひよ 06/4/4(火) 22:13
【1963】Re:CrystalCPUID 4.7.4.295 試しました DULL 06/4/5(水) 21:58
【1964】Re:CrystalCPUID 4.7.4.295 試しました ひよひよ 06/4/7(金) 17:16

423 / 2351 ←次へ | 前へ→
  新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃ホーム  
ページ:  ┃  記事番号:   
51982
(SS)C-BOARD v3.8(とほほ改ver2.1) is Free