[過去ログ]
C++相談室 part165 (1002レス)
C++相談室 part165 http://mevius.5ch.net/test/read.cgi/tech/1698705458/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
42: デフォルトの名無しさん (ワッチョイ e5a7-cSrA) [sage] 2023/11/09(木) 17:23:48.54 ID:Op1F6lz40 VC++なんだけど32bitで_thiscallを関数ポインタ経由で呼ぶことってasm使わないと不可能? メンバ関数を関数ポインタ変数とすることは出来てもそこから第一引数にインスタンス入れたりしてもコンパイル時エラーになる http://mevius.5ch.net/test/read.cgi/tech/1698705458/42
48: デフォルトの名無しさん (ワッチョイ e5a7-cSrA) [sage] 2023/11/09(木) 21:12:03.97 ID:Op1F6lz40 >>43 ありがとう、逆アセ見たら完璧にthiscallになってた メンバ関数っていうかthiscall指定したものは32bitだとecxレジスタにthisポインタが隠されていてそれ以外はstdcallと同じ なので下みたいに第一引数にインスタンスのポインタを入れる事でecxに代入される感じになりそうだなーと思ったら無理だった ちなみに64bitの場合はどちらもfastcallで同じだから単純に第一引数にthisポインタが隠されてるだけ auto pFunc = CDate::addDay; // CDate addDay(int value) CDate tomorrow = pFunc(&instance, 1); http://mevius.5ch.net/test/read.cgi/tech/1698705458/48
49: デフォルトの名無しさん (ワッチョイ e5a7-cSrA) [sage] 2023/11/09(木) 21:28:58.67 ID:Op1F6lz40 てかググったら簡単なシミュレーション方法載せてるブログあった _fastcallで宣言して第二引数のedxを捨て駒にする事で疑似_thiscallになる つまりint(__fastcall * pFunc)(CDate*, void*, int)とすれば一応アセンブラ的な辻褄は合う事になる http://mevius.5ch.net/test/read.cgi/tech/1698705458/49
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.038s