トップページ⇒tech
199コメント49KB

64bitのソフトウェアってどうやって作るの?

■ このスレッドは過去ログ倉庫に格納されています
0001Windows厨&rlo;wwwね死はCAM。すでXUNILチンアやや2007/02/03(土) 14:37:17
64bitCPUで64bit版ヴィスタ
どうやって64bitアプリケーション作るの?
0002デフォルトの名無しさん2007/02/03(土) 14:38:51
この板はプログラムを作る人のための板です。

あらゆる質問はまずすれ立てるまでもない質問はここでスレにしてください。

その他、お勉強ページへのリンクスレ、
推薦図書・必読書スレ
もあります。

プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。
Javascript は Web 制作板、CGI は Web プログラミング板へ。
業界談義、愚痴はプログラマ板へどうぞ。
ゲーム関係の話題はゲーム製作板へどうぞ。
ネタ、板とは関係の無い話題はご遠慮ください。
0003デフォルトの名無しさん2007/02/03(土) 14:43:52
>>1
自分で削除依頼しろよ。
0004デフォルトの名無しさん2007/02/03(土) 14:48:48
>>1
VS2005に64bit C++コンパイラがはいってる
.NETなら64bit/32bitは基本的に意識しなくていい
0005デフォルトの名無しさん2007/02/03(土) 16:28:36
あの…
C++に勝てる言語が見つからないんですが…

魔法のMD5 - MD5バトル
http://www.newspace21.com/mix/btlm.php

既出?
0006デフォルトの名無しさん2007/02/03(土) 16:30:44
[C++] 攻撃:97 素早さ:98 防御:98 命中:54 運:66 HP:273
[C++++++++++++] 攻撃:92 素早さ:60 防御:99 命中:99 運:58 HP:287

C++ vs C++++++++++++ 戦闘開始!!
[C++]の攻撃 HIT [C++++++++++++]は73のダメージを受けた。
[C++++++++++++]の攻撃 HIT [C++]は59のダメージを受けた。
[C++]の攻撃 HIT [C++++++++++++]は71のダメージを受けた。
[C++++++++++++]の攻撃 HIT [C++]は67のダメージを受けた。
[C++]の攻撃 HIT [C++++++++++++]は10のダメージを受けた。
[C++++++++++++]の攻撃 HIT [C++]は92のダメージを受けた。
[C++]の攻撃 HIT [C++++++++++++]は50のダメージを受けた。
[C++++++++++++]の攻撃 HIT [C++]は28のダメージを受けた。
[C++]の攻撃 HIT [C++++++++++++]は60のダメージを受けた。
[C++++++++++++]の攻撃 HIT [C++]は66のダメージを受けた。
[C++++++++++++]が[C++]を倒しました(ラウンド数:5)。

C++はいずれ進化した自分自身に滅ぼされるようだ
0007デフォルトの名無しさん2007/02/03(土) 16:36:50
1. C++
2. Oberon
3. Plankalkül
4. Prolog

C++つええwwwwwwww
0008デフォルトの名無しさん2007/02/03(土) 16:57:54
>>5
言語じゃないが、有名どころでは AdvancedMicroDevices がある。

[C++] 攻撃:97 素早さ:98 防御:98 命中:54 運:66 HP:273
[AdvancedMicroDevices] 攻撃:98 素早さ:59 防御:92 命中:81 運:93 HP:258

C++ vs AdvancedMicroDevices 戦闘開始!!
[C++]の攻撃 HIT [AdvancedMicroDevices]は73のダメージを受けた。
[AdvancedMicroDevices]の攻撃 HIT [C++]は78のダメージを受けた。
[C++]の攻撃 HIT [AdvancedMicroDevices]は77のダメージを受けた。
[AdvancedMicroDevices]の攻撃 HIT [C++]は68のダメージを受けた。
[C++]の攻撃 HIT [AdvancedMicroDevices]は23のダメージを受けた。
[AdvancedMicroDevices]の攻撃 HIT [C++]は77のダメージを受けた。
[C++]の攻撃 HIT [AdvancedMicroDevices]は34のダメージを受けた。
[AdvancedMicroDevices]の攻撃 HIT [C++]は87のダメージを受けた。
[AdvancedMicroDevices]が[C++]を倒しました(ラウンド数:4)。
0009デフォルトの名無しさん2007/02/03(土) 17:10:19
ヌルポ、超弱ぇー!!!

[C++] 攻撃:97 素早さ:98 防御:98 命中:54 運:66 HP:273
[ヌルポ] 攻撃:85 素早さ:15 防御:68 命中:26 運:29 HP:113

C++ vs ヌルポ 戦闘開始!!
[C++]の攻撃 HIT [ヌルポ]は111のダメージを受けた。
[ヌルポ]の攻撃 MISS [C++]は攻撃を回避した。
[C++]の攻撃 HIT [ヌルポ]は122のダメージを受けた。
[C++]が[ヌルポ]を倒しました(ラウンド数:2)。
0010デフォルトの名無しさん2007/02/03(土) 17:51:04
[C++] 攻撃:97 素早さ:98 防御:98 命中:54 運:66 HP:273
[C--] 攻撃:23 素早さ:19 防御:98 命中:49 運:91 HP:203

C++ vs C-- 戦闘開始!!
[C++]の攻撃 HIT [C--]は108のダメージを受けた。
[C--]の攻撃 MISS [C++]は攻撃を回避した。
[C++]の攻撃 HIT [C--]は68のダメージを受けた。
[C--]の攻撃 HIT [C++]は0のダメージを受けた。
[C++]の攻撃 HIT [C--]は35のダメージを受けた。
[C++]が[C--]を倒しました(ラウンド数:3)。
魔法のMD5 - MD5バトル http://www.newspace21.com/mix/btlm.php

C++は無傷w
0011デフォルトの名無しさん2007/02/03(土) 18:01:27
前から思ってたんだけど、
C++ って、後置インクリメントだから、
結果はCと変わってないってことなんですよね?

何のために存在するの?
0012デフォルトの名無しさん2007/02/03(土) 18:13:20
>>11
言語の基礎からやり直せ。
0013デフォルトの名無しさん2007/02/03(土) 20:47:58
ポストインクリメントや、ポストデクリメントは、コンパイラや環境によって作用が違うから禁止!
0014デフォルトの名無しさん2007/02/03(土) 23:52:45
>>11
よりまともなオブジェクト指向言語を生み出すための通過点。
インクリメント後の値はJavaだけど、C++の式の値はCのまま。
0015デフォルトの名無しさん2007/02/04(日) 01:10:40
>インクリメント後の値はJavaだけど、C++の式の値はCのまま。

(゚Д゚) ・・・。
0016デフォルトの名無しさん2007/02/04(日) 01:19:08
Java is money oriented language :-)
0017デフォルトの名無しさん2007/02/04(日) 04:40:00
まずFPGA(大規模なものが良い)を買う。
次に好きなように64bitCPUをHDLで作る。
0018デフォルトの名無しさん2007/02/10(土) 00:44:57
>5

[c++] 攻撃:48 素早さ:61 防御:92 命中:13 運:93 HP:262
[BASIC] 攻撃:90 素早さ:95 防御:71 命中:11 運:97 HP:258

c++ vs BASIC 戦闘開始!!
[BASIC]の攻撃 HIT [c++]は88のダメージを受けた。
[c++]の攻撃 MISS [BASIC]は攻撃を回避した。
[BASIC]の攻撃 MISS [c++]は攻撃を回避した。
[c++]の攻撃 MISS [BASIC]は攻撃を回避した。
[BASIC]の攻撃 MISS [c++]は攻撃を回避した。
[c++]の攻撃 MISS [BASIC]は攻撃を回避した。
[BASIC]の攻撃 HIT [c++]は72のダメージを受けた。
[c++]の攻撃 MISS [BASIC]は攻撃を回避した。
[BASIC]の攻撃 HIT [c++]は56のダメージを受けた。
[c++]の攻撃 MISS [BASIC]は攻撃を回避した。
[BASIC]の攻撃 HIT [c++]は88のダメージを受けた。
[BASIC]が[c++]を倒しました(ラウンド数:6)。
0019デフォルトの名無しさん2007/02/10(土) 00:47:53
>5

[c++] 攻撃:48 素早さ:61 防御:92 命中:13 運:93 HP:262
[perl] 攻撃:98 素早さ:81 防御:30 命中:14 運:67 HP:295

c++ vs perl 戦闘開始!!
[perl]の攻撃 HIT [c++]は103のダメージを受けた。
[c++]の攻撃 MISS [perl]は攻撃を回避した。
[perl]の攻撃 MISS [c++]は攻撃を回避した。
[c++]の攻撃 HIT [perl]は123のダメージを受けた。
[perl]の攻撃 MISS [c++]は攻撃を回避した。
[c++]の攻撃 MISS [perl]は攻撃を回避した。
[perl]の攻撃 MISS [c++]は攻撃を回避した。
[c++]の攻撃 HIT [perl]は104のダメージを受けた。
[perl]の攻撃 HIT [c++]は85のダメージを受けた。
[c++]の攻撃 MISS [perl]は攻撃を回避した。
[perl]の攻撃 HIT [c++]は74のダメージを受けた。
[perl]が[c++]を倒しました(ラウンド数:6)。
0020デフォルトの名無しさん2007/02/10(土) 01:06:48
[Perl] 攻撃:10 素早さ:24 防御:17 命中:71 運:12 HP:269
[c++] 攻撃:48 素早さ:61 防御:92 命中:13 運:93 HP:262

Perl vs c++ 戦闘開始!!
[c++]の攻撃 HIT [Perl]は92のダメージを受けた。
[Perl]の攻撃 HIT [c++]は1のダメージを受けた。
[c++]の攻撃 HIT [Perl]は149のダメージを受けた。
[Perl]の攻撃 HIT [c++]は1のダメージを受けた。
[c++]の攻撃 MISS [Perl]は攻撃を回避した。
[Perl]の攻撃 HIT [c++]は1のダメージを受けた。
[c++]の攻撃 HIT [Perl]は153のダメージを受けた。
[c++]が[Perl]を倒しました(ラウンド数:4)。
0021デフォルトの名無しさん2007/02/10(土) 01:07:14
[c++] 攻撃:48 素早さ:61 防御:92 命中:13 運:93 HP:262
[Basic] 攻撃:63 素早さ:56 防御:26 命中:51 運:75 HP:232

c++ vs Basic 戦闘開始!!
[c++]の攻撃 MISS [Basic]は攻撃を回避した。
[Basic]の攻撃 HIT [c++]は22のダメージを受けた。
[c++]の攻撃 HIT [Basic]は129のダメージを受けた。
[Basic]の攻撃 HIT [c++]は1のダメージを受けた。
[c++]の攻撃 MISS [Basic]は攻撃を回避した。
[Basic]の攻撃 HIT [c++]は23のダメージを受けた。
[c++]の攻撃 HIT [Basic]は103のダメージを受けた。
[c++]が[Basic]を倒しました(ラウンド数:4)。
0022デフォルトの名無しさん2007/02/10(土) 01:28:16
マジレスするとVisual Studio 2005 Standard以上を買え。それが無理ならWindows SDK。
0023デフォルトの名無しさん2007/02/10(土) 09:57:27
>>18-21
0024デフォルトの名無しさん2007/02/11(日) 14:53:37
>>18-21
C++ に勝てないと書いてあるのであって、c++ に勝てないと書いてあるわけではない。
0025デフォルトの名無しさん2007/04/05(木) 12:54:59
Vistaがみんなのてにわたるまぇ
0026デフォルトの名無しさん2007/04/24(火) 10:09:01
アリの巣コロリってあるじゃん。蟻の行列にポンと置くと、一瞬ビックリして列が乱れる。
邪魔だなと言わんばかりに迂回する列が出来る。
そのうち好奇心旺盛な一匹がアリの巣コロリに入る。
そいつをマネして何匹も入る。
毒とも知らずにツブツブを運び出す。一匹が一粒づつ。
いつのまにか行列はアリの巣コロリが折り返し地点になる。
黄色い粒と黒い蟻が作り出す模様は綺麗で見てて楽しい。
一匹が一粒づつ、丁寧にせっせと毒の粒を運ぶ。
せっせと、せっせと、せっせと、せっせと。
蟻さんって働き者だなと思う。俺も頑張らなきゃなと思う。
次の日、あれほど沢山いて俺を困らせた蟻が一匹もいない。
ほんとにいない。探してもいない。泣きたくなった。                   


このレスを見た人は4日後にあなたの大切な人がいなくなるでしょう・・・・
それが嫌ならこのレスを5つの板にコピペしてください。 
信じるか信じないかはあなた次第です。
0027デフォルトの名無しさん2007/05/24(木) 11:05:30
8bytes以内でプログラムを書けって話かとおもった
0028デフォルトの名無しさん2007/05/24(木) 23:57:16
お前らなぁ、英語の複数形ぐらい中学校で習っただろ。
正: 64-bit CPU
誤: 64bit CPU

とりあえずコンパイルオプションを64ビットにする。
それで動かないプログラムの90%以上は
言語仕様を正しく理解してない奴の駄プログラム。
0029デフォルトの名無しさん2007/05/25(金) 09:27:56
残りは?
0030デフォルトの名無しさん2007/06/04(月) 15:33:56
言語仕様を正しく理解している奴の駄プログラム。
0031・∀・)っ-○◎●2007/06/04(月) 22:26:03
IA-32用しか提供されてないようなライブラリなんてザラにあるのに
そう簡単に移植できるかよ
詭弁詭弁
0032デフォルトの名無しさん2007/08/06(月) 12:59:16
便器便器
0033デフォルトの名無しさん2007/08/06(月) 13:56:11
紀文紀文
0034デフォルトの名無しさん2007/08/07(火) 00:05:20
ぬるぽぬるぽ
0035デフォルトの名無しさん2007/08/08(水) 04:38:20
うんうんうんちっち
でるでるるるるるる
0036デフォルトの名無しさん2007/12/03(月) 08:58:58
64-bitアセンブラやりたいんですが
0037デフォルトの名無しさん2007/12/03(月) 20:34:58
>>36
つ ml64
0038デフォルトの名無しさん2007/12/04(火) 09:16:40
>>37
サンクス! いいのがありますね。
0039デフォルトの名無しさん2008/02/13(水) 00:37:23
>>37
可能です。
以上。
↓次どうぞ
0040デフォルトの名無しさん2008/02/13(水) 09:53:40
>>37
ありがとう!
0041デフォルトの名無しさん2008/04/11(金) 13:31:00
64bit環境だと
intって64bitになるのかな、それとも32bitのまま?
ポインタはデフォで64bitになるのかな。
32bitのポインタは使えるのかな?
0042デフォルトの名無しさん2008/04/11(金) 13:39:14
LLP64でググるといいと思うよ。
0043デフォルトの名無しさん2008/04/11(金) 14:15:44
>>42
ありがとう。
Windowsだとintもlongも32bitなんだね。
0044デフォルトの名無しさん2008/04/11(金) 14:51:08
intの用途なんて99%は32bitで納まってるからな
0045デフォルトの名無しさん2008/04/11(金) 20:23:29
ファイルサイズとか以外なら大丈夫だろうな。
0046デフォルトの名無しさん2008/04/11(金) 22:35:39
残りの1%である、そのファイルサイズとかはどうやって格納するの?
0047デフォルトの名無しさん2008/04/11(金) 22:37:28
>>46
uint64_t
0048デフォルトの名無しさん2008/04/12(土) 02:37:30
ファイルサイズが64ビットに収まる保証ってあるの?
0049デフォルトの名無しさん2008/04/12(土) 02:41:27
今のところ、ファイルシステムあるいはOSのAPIが
64ビットでファイルサイズを扱っているから、
アプリケーションだけの力でそれを超える大きさのファイルを扱うのは無理。

64ビットですら足りなくなる時がいつか来るかもしれないけど、
数年〜十数年先のことではないと思う。
0050デフォルトの名無しさん2008/04/12(土) 09:10:52
普通は>>47のようなものは使わずにoff_tを使う
0051デフォルトの名無しさん2008/04/12(土) 11:37:47
>>48
ファイルシステムの限界という物がですね‥‥
Win16だと2.1GBまでのファイルしか扱えなかったし。
Win32からはファイルサイズは64bitで扱ってる。NTFSファイルのタイムスタンプも64bit。
0052デフォルトの名無しさん2008/04/12(土) 18:56:34
>>50
off_tって32bitやん
0053デフォルトの名無しさん2008/04/12(土) 19:23:00
>>52
処理系依存。64bitの場合も多いです。

ファイルサイズとかタイムスタンプとかメモリオフセットとか、以外と32ビットじゃ足らない物は多いですよね。
0054デフォルトの名無しさん2008/04/14(月) 10:09:04
というか掛け算やりたかったら結果が32bitに収まるかどうかで
もう神経使うよ。
0055デフォルトの名無しさん2008/04/14(月) 22:06:34
溢れそうなら石関係なくint64使えばいい。
10年前からそうなっているしLLP64を採用する限りその状況は今後も変わらない。
0056デフォルトの名無しさん2008/04/15(火) 06:53:18
これだから学者さんは現場を知らないって言われるんだろ
0057,,・´∀`・,,)っ-○◎●2008/04/15(火) 12:15:43
概ねにして

sizeof (off_t) == sizeof (void*)
0058マイク ◆yrBrqfF1Ew 2008/05/19(月) 10:16:38
>>1 そういえば数年前(1〜3年)に64bitプログラミングに関するweb記事をitmediaのサイトで見たお。
0059デフォルトの名無しさん2008/05/19(月) 11:56:22
16→32bitの時と32→53bitの時ではどうも様子が違うなあ。
64bitに確実に移行させるには新しいOSが必要なんじゃない?
0060デフォルトの名無しさん2008/05/19(月) 11:56:44
×53bit
○64bit
0061デフォルトの名無しさん2008/05/19(月) 23:09:28
>>59
つWindows Vista/Windows Server 2008
0062デフォルトの名無しさん2008/05/28(水) 17:09:56
64-bitアセンブラのいい本ありませんか?
0063デフォルトの名無しさん2008/05/30(金) 00:28:58
ありますよ
0064642008/06/07(土) 20:27:52
64bit
0065652008/06/08(日) 08:22:29
65bit
0066デフォルトの名無しさん2008/06/16(月) 06:09:00
>>59
Mac OS X Leopard/Snow Leopard

>>1
Xcode 3.1でCocoaアプリ作る
コンパイル時に64Bitを指定
以上
0067デフォルトの名無しさん2008/06/17(火) 21:53:37
LONG_LONG LARGE_INTEGER
0068デフォルトの名無しさん2008/08/03(日) 23:54:56
__int64 LONGLONG DWORDLONG PtrToLong PtrToULong LONG_PTR ULONG_PTR
0069デフォルトの名無しさん2008/08/08(金) 18:49:14
PtrTo*、*ToPtrの存在価値
0070デフォルトの名無しさん2008/08/24(日) 00:26:55
>>61
いやそーゆーのじゃなくて、Win32 APIのしがらみのないやつ。
64ビットなのにFILETIME ft;ft.dwLowDateTimeとかアホすぎる。
0071デフォルトの名無しさん2008/08/24(日) 15:13:42
つ.NET Framework
0072デフォルトの名無しさん2008/08/26(火) 10:31:55
( ゚Д゚)イラネ
0073デフォルトの名無しさん2008/08/26(火) 10:44:08
わがままだなあ
0074デフォルトの名無しさん2008/09/03(水) 08:14:37
8オクテット・プログラミング?
結構制約多いな。
0075デフォルトの名無しさん2008/09/03(水) 19:50:52
Windows は何で LP64 にしなかったんだろう…
常に非互換な方に動くよね。これもしがらみ?
0076デフォルトの名無しさん2008/09/06(土) 16:07:11
LONG = 32ビット符号付き整数型
という定義だからどうしようもない。SDWORDって名前にすればよかったのに。
http://msdn.microsoft.com/en-us/library/aa383751.aspx
0077デフォルトの名無しさん2008/09/13(土) 23:08:05
どうせならQWORD。アセンブラもそうだし
0078デフォルトの名無しさん2008/09/13(土) 23:41:29
>>77
それは欲しい。DWORD64とかあほにもほどがある。
0079,,・´∀`・,,)っ-○◎●2008/09/21(日) 16:13:44
いっぽう、IntelはXMMWORD/YMMWORDなんてものを用意した
0080デフォルトの名無しさん2008/10/01(水) 14:59:41
>>79
あれはマルチメディアようのパックド演算用の単位だからちょっと意味が違う。
128bitや256bitとは見ずに32x4や32x8等と見るよ
0081デフォルトの名無しさん2008/10/04(土) 09:00:53
u_int ptr = addr;
ってやるとなんかアドレス取れない
64bitって糞だな
0082,,・´∀`・,,)っ-○◎●2008/10/04(土) 10:48:42
u_longかu_longlong使えば?
0083デフォルトの名無しさん2008/10/04(土) 11:35:45
そう言うときに使うのがint_ptr_tじゃないのか?
0084デフォルトの名無しさん2008/10/04(土) 11:36:53
訂正、intptr_t。
0085デフォルトの名無しさん2008/10/04(土) 11:42:28
uintで値取れない64bitが糞
0086,,・´∀`・,,)っ-○◎●2008/10/04(土) 11:54:38
IP64な処理系でも使えよwww
0087デフォルトの名無しさん2008/10/04(土) 19:31:48
Linux kernel だと unsigned long がアドレス値の型ということになっているな
0088デフォルトの名無しさん2008/10/10(金) 06:17:50
>>81,85の頭って糞だな
0089デフォルトの名無しさん2008/10/25(土) 21:05:52
0090デフォルトの名無しさん2008/10/26(日) 11:15:36
#define MAKELONGLONG(a,b) \
((LONGLONG)((DWORD)(a) | ((DWORDLONG)(DWORD)(b)) << 32))
#define LOLONG(dwl) ((DWORD)(dwl))
#define HILONG(dwl) ((DWORD)(((DWORDLONG)(dwl) >> 32) & 0xFFFFFFFF))
0091デフォルトの名無しさん2008/10/26(日) 11:52:34
Windows NT 4.0 (Alpha) と Visual Studio C++ for RISC
0092デフォルトの名無しさん2008/10/26(日) 12:35:11
>>91
Alpha版NTは32bitだが?
0093デフォルトの名無しさん2008/10/26(日) 15:19:49
中間
0094デフォルトの名無しさん2008/11/15(土) 09:50:15
LP64とかLLP64ってコンパイラ毎の仕様だよね?
Windows 64向けのGCCは、ちゃんとLLP64に合わせてるの?
0095デフォルトの名無しさん2008/11/15(土) 13:12:23
>>94

x86_64-mingw32-gcc
int = 4, long = 4, long long = 8, void* = 8

x86_64-elf-gcc
int = 4, long = 8, long long = 8, void* = 8
0096デフォルトの名無しさん2008/11/15(土) 16:10:51
64bitでlong=4ってマジクソだな
0097デフォルトの名無しさん2008/11/15(土) 16:18:34
intやlongといった仕様がどうなのかなと思うけど
0098デフォルトの名無しさん2008/11/15(土) 16:37:47
long long が 16 じゃないのがイカさねえ仕様だな
0099デフォルトの名無しさん2008/11/15(土) 17:06:21
>>96
long = 4バイト決め打ちで書いてあるソースが使えなくなっちゃうぢゃないか
0100デフォルトの名無しさん2008/11/15(土) 17:45:02
>>99
そんなクソなソースコードは放っておいてよろしい
0101デフォルトの名無しさん2008/11/15(土) 17:50:01
>>95
thx

これからはプラットフォームAPI以外はstdint.hとか使ってくべきなのかな。
それならいっそ、業務用途ならもうJavaだけでいいやとも思い始めたり。
0102デフォルトの名無しさん2008/11/16(日) 08:03:29
>76
WindowsのC++開発環境って、やたらめったらtypedefしてあるから、
こういう時にさくっと移行できるようにしてるのかと思ったら、そうじゃないのか。
0103デフォルトの名無しさん2008/11/16(日) 12:01:14
HANDLEとかWPARAMとかはさくっと16→32→64ビットに変化しております。
0104デフォルトの名無しさん2008/11/16(日) 13:25:14
型名にサイズを現す文字が入ってるのに実際のサイズと違ってて不気味だけどなー
Win16時代は16bitだったWPARAM(word)やWin64で64bitになったLPARAM(long)とか。
DWORD_PTRなんかもそうか。
0105デフォルトの名無しさん2008/11/16(日) 14:22:06
そもそも 1ワードが16ビットってのは違和感あるけどなあ
8086とかの頃はそうだったんだろうけど
0106デフォルトの名無しさん2008/11/16(日) 16:00:32
>>105
アセンブラの単位は8086に付け足しだよ

1: BYTE: AL(8086), etc
2: WORD: AX(8086), etc
4: DWORD: EAX(80386), etc
8: QWORD: RAX(x64), mm0(MMX), etc
16: DQWORD: xmm0(SSE), etc
0107デフォルトの名無しさん2008/11/16(日) 18:59:04
>104
よく分からんのだが、DWORD_PTR は DWORD* じゃダメなのか?
0108デフォルトの名無しさん2008/11/16(日) 19:05:27
DWORD_PTR は PDWORDじゃないぞ
0109,,・´∀`・,,)っ-○◎○2008/11/16(日) 21:45:57
DWORD_PTRって確かに難しいな。
強いて言うとポインタ型と同じサイズの符号なし整数型なんだが

offset_tか?


0110デフォルトの名無しさん2008/11/16(日) 21:52:36
……uintptr_t
0111デフォルトの名無しさん2008/11/17(月) 16:32:21
配列のindexをsize_tにでもしておけば数値解析程度ならなにも気にせず32/64どっちでも動くけど
printfとかscanf系統が面倒くさいんだよなぁ。
0112デフォルトの名無しさん2008/11/17(月) 16:49:33
indexが2^32を超えない自信があるなら、unsignedでいいじゃん。
つーか、整数型で16GB、実数型で32GBも普通は使わないでしょ。
0113デフォルトの名無しさん2008/11/17(月) 16:57:16
>>112
使うことがあるから困ってんじゃん。
0114デフォルトの名無しさん2008/11/17(月) 17:05:13
size_tとかoffset_tとかをまじめに使ってるソースを見た事がない。
全部intにしちゃうのが多くない?
0115デフォルトの名無しさん2008/11/17(月) 17:25:43
>>111
C99だとsize_t用の指定子ができたんだけどね、C99自体が流行らないから……。
0116デフォルトの名無しさん2008/11/17(月) 19:59:43
そういやSQL99も流行らないし、
99って数字には実装する気にならない何かがあるのか。
0117デフォルトの名無しさん2008/11/18(火) 13:42:10
ないない。c99は結構使われているよ。知らず知らずのうちにね。
0118デフォルトの名無しさん2008/11/18(火) 17:28:31
ないない。c99は結構使われているよ。知らず知らずのうちにね。
0119デフォルトの名無しさん2008/11/18(火) 17:31:28
知らず知らずのうちに 君を好きになって
0120デフォルトの名無しさん2008/11/18(火) 18:00:21
Unix系のSIerの質の低いところは、自分が書いているコードがc99だと理解せずに書いてくるから困る。
0121デフォルトの名無しさん2008/11/18(火) 21:45:35
マルチプラットフォーム対応の綺麗なコードを書いたつもりでも
行コメントを使ってくるって残念なケースもたまにある。
0122デフォルトの名無しさん2008/11/20(木) 11:06:21
私が使っているのはgcc拡張機能であって、決してC99ではありません。
0123デフォルトの名無しさん2008/11/20(木) 11:22:38
余計に悪いわ
0124デフォルトの名無しさん2008/11/23(日) 02:24:20
>105
組み込みマイコンとか、1ワード=16ビットってのは少なくないぞ。
32ビットマイコンでもワード長が16ビットなんてのさえあったりする。MC68000と逆だな。
0125,,・´∀`・,,)っ-○◎●2008/11/26(水) 14:25:42
WORD=命令長だから扱うデータ長は関係ない。
SuperHとかARMのThumbなんかが2byte長だな。

x86は可変長で1〜11byte(仕様上の上限は15バイトまで)だったりするけど
基本形はOpcode+ModRMの2byteだ。
0126デフォルトの名無しさん2008/11/26(水) 14:36:32
WORD=命令長なんて定義は無い
0127デフォルトの名無しさん2008/11/26(水) 15:31:39
ワード幅と聞くとメモリの話かなと一瞬思いながら続きの話を聞いている
0128,,・´∀`・,,)っ-○◎●2008/11/26(水) 15:50:59
>>126
ないよ。
でもCPUの命令ワード長と基本データ長って昔は大体一致してたからね。

でも今のx86はデータバス幅は128bitだったりする。Intelは「XMMWORD」なんて言ってるけど
ゲーム業界的には128-bit CPU(笑)

データバス幅=ワード長という定義もないし
もちろんアドレス長=ワード長でもない

結局ワードに深い意味はない。
8086を引きずってるから1ワード=2バイトなんだ。
0129デフォルトの名無しさん2008/11/26(水) 16:42:33
CPUのビット幅は元々バス幅であって
「命令長と大体一致」しようがなんだろうが
お前の勝手な思い込みに過ぎん。
つーかx86はバイトマシンだ。
いちいち出てくんなよ間抜け。
0130,,・´∀`・,,)っ-○◎●2008/11/26(水) 16:44:39
8086のことを言ってるのか?
x86は基本的に386以降のことを言うんだが
0131,,・´∀`・,,)っ-○◎●2008/11/26(水) 16:45:47
> CPUのビット幅は元々バス幅であって

で、おまいの脳内ではPentium 4以降は128ビットCPUなわけだな。
0132デフォルトの名無しさん2008/11/26(水) 16:58:42
代表的8bitCPUのひとつといわれる8080/Z80がALU4bit、データバス幅8bit、アドレスバス幅16bit、レジスタ幅8/16bit、命令長可変octetの変態構成だからな
宣伝語以上の意味は無いな
0133,,・∀・,,)っ-○---2008/11/26(水) 18:11:36
食べられてしまった
0134デフォルトの名無しさん2008/11/26(水) 21:03:15
int64 て美しくないよね。
0135デフォルトの名無しさん2008/11/27(木) 00:03:25
[python] 攻撃:22 素早さ:77 防御:94 命中:93 運:34 HP:156
[ruby] 攻撃:41 素早さ:94 防御:91 命中:32 運:17 HP:128

python vs ruby 戦闘開始!!
[ruby]の攻撃 HIT [python]は1のダメージを受けた。
[python]の攻撃 HIT [ruby]は1のダメージを受けた。
[ruby]の攻撃 HIT [python]は11のダメージを受けた。
[python]の攻撃 HIT [ruby]は4のダメージを受けた。
     ・
     ・
[ruby]の攻撃 HIT [python]は15のダメージを受けた。
[python]の攻撃 HIT [ruby]は1のダメージを受けた。
[ruby]の攻撃 HIT [python]は12のダメージを受けた。
[python]の攻撃 HIT [ruby]は1のダメージを受けた。
[ruby]の攻撃 HIT [python]は10のダメージを受けた。
[python]の攻撃 HIT [ruby]は1のダメージを受けた。
[python]と[ruby]の戦いは引き分けでした(ラウンド数:16)。
0136デフォルトの名無しさん2008/11/27(木) 11:06:19
ど〜でも、いいですよ〜
0137デフォルトの名無しさん2008/11/27(木) 21:40:30
unsignedをさくっと捨てたJavaはいい判断をしたと思う。
容量が2倍になったって別にありがたくもなんとも無いんだよな。

#define BYTE unsigned char とか正直、癌としか思えない。
0138,,・´∀`・,,)っ-●◎○2008/11/27(木) 21:58:06
>>137
それは確かに癌だろ。typedef使えよ。
プリプロセッサマクロはnamespaceを飛び越えるから始末に困る。
0139デフォルトの名無しさん2008/11/27(木) 22:39:57
Javaならunsignedなくてもいいけど、Cでunsignedが無いのはデバドラ書くとき困る。
0140デフォルトの名無しさん2008/11/27(木) 22:58:37
Javaのようにそもそも採用しなかったり、
C#のように実質的に使われなかったりする言語なら別にいい。

けれど、C/C++でintばっかり使うのは勘弁してくれ。
unsignedとかsize_tとか使ってくれ。
0141デフォルトの名無しさん2008/12/01(月) 10:33:44
>>137
>容量が2倍になったって別にありがたくもなんとも無いんだよな。
そういうふうに思えるようなソフトしか作る機会がない。って事でしょ。
押し付けよくない!
0142デフォルトの名無しさん2008/12/01(月) 10:56:53
不用意に符号拡張されると困る
0143デフォルトの名無しさん2008/12/01(月) 19:39:23
QWORD見るたびにVC++はなんでDWORD64なんて作ったんだよと思うよ
0144デフォルトの名無しさん2008/12/01(月) 20:11:24
QWORDみたいな変な読み替えで誰が得するのかよく分からん。
longも同様。long > intだけじゃなくlong == intな時もあるって、それ何の役に立つの?
long longとか無様すぎ。
「こだわり無し」を示すint以外は、全部ビット数指定(int64_t, int32_t)でいいんじゃないか?
0145デフォルトの名無しさん2008/12/01(月) 20:31:10
その方針はありだと思う。
だが、そうだとしたらUINT64があるんだから、
やっぱりDWORD64は要らないだろと結びたい。
0146デフォルトの名無しさん2008/12/03(水) 11:58:05
ど〜でもいいですよ〜
0147デフォルトの名無しさん2008/12/21(日) 18:15:33
私のビット数は53万です。
0148デフォルトの名無しさん2008/12/29(月) 10:10:39
typedef signed int s32;
typedef signed short s16;
typedef signed long long s64; //処理系依存
typedef unsigned int u32;
typedef unsigned short u16;
typedef unsigned long long u64; //処理系依存

と本当にbit幅が必要な型は定義をしておいたら
64bitに移植しても全然困らなかったぞ。
俺は、bit演算とファイルフォーマットの為にこんな事したが、
ポインタ突っ込めないからどうのと言っている奴はバカだろ・・・。

てかMSは、typedef int LONG;にすりゃ良かったのに何のためのtypedefだ?
あと、LONGPTRってなぜvoid*にしない。
0149デフォルトの名無しさん2008/12/29(月) 10:42:31
P○○がポインタで、○○_PTRはポインタサイズの数値
0150デフォルトの名無しさん2008/12/29(月) 15:05:58
そりゃ自分が書いたやつだけ相手にしてりゃ困ることは少ないだろうよ
0151デフォルトの名無しさん2009/01/01(木) 14:54:23
stdint.h か basetsd.h 使えばいいのに
0152デフォルトの名無しさん2009/01/03(土) 20:31:18
こんな感じにしている
#ifdef HAVE_STDINT_H
#include <stdint.h>
#elif defined(_MSC_VER) && (_MSC_VER >= 1200)
typedef __int64 int64_t;
typedef unsigned __int64 uint64_t;
0153デフォルトの名無しさん2009/01/04(日) 02:41:05
C++ならboost/cstdint.hppという手もある。
0154デフォルトの名無しさん2009/01/10(土) 21:03:36
[ちんこ] 攻撃:32 素早さ:90 防御:34 命中:90 運:87 HP:259
[まんこ] 攻撃:66 素早さ:31 防御:83 命中:99 運:96 HP:178

ちんこ vs まんこ 戦闘開始!!
[ちんこ]の攻撃 HIT [まんこ]は1のダメージを受けた。
[まんこ]の攻撃 HIT [ちんこ]は100のダメージを受けた。
[ちんこ]の攻撃 HIT [まんこ]は1のダメージを受けた。
[まんこ]の攻撃 HIT [ちんこ]は121のダメージを受けた。
[ちんこ]の攻撃 HIT [まんこ]は9のダメージを受けた。
[まんこ]の攻撃 HIT [ちんこ]は112のダメージを受けた。
[まんこ]が[ちんこ]を倒しました(ラウンド数:3)。
0155デフォルトの名無しさん2009/03/26(木) 16:35:50
.NETなら意識しなくていいんだな?
0156デフォルトの名無しさん2009/03/26(木) 16:37:14
.NETの場合、AnyCPUなら意識しないでいい。
ただしWIN32のDLLと混在させる場合等、x86にしなくてはならない場合もある。
0157デフォルトの名無しさん2009/03/27(金) 12:43:21
その結果、結論として意識する
0158デフォルトの名無しさん2009/03/27(金) 21:30:41
[C++] 攻撃:97 素早さ:98 防御:98 命中:54 運:66 HP:273
[VB] 攻撃:63 素早さ:94 防御:26 命中:16 運:57 HP:157

C++ vs VB 戦闘開始!!
[C++]の攻撃 HIT [VB]は163のダメージを受けた。
[C++]が[VB]を倒しました(ラウンド数:1)。

わろた。
0159デフォルトの名無しさん2009/04/03(金) 21:51:23
64bitのexeから32bitのDLLの関数呼ぶ方法ある?
0160デフォルトの名無しさん2009/04/03(金) 22:09:10
>>159
ない
プロセス間通信等で間接的に利用するしかない
0161デフォルトの名無しさん2009/04/04(土) 03:46:18
[64bit] 攻撃:20 素早さ:54 防御:29 命中:44 運:67 HP:166
[8bit] 攻撃:12 素早さ:86 防御:45 命中:77 運:56 HP:203

64bit vs 8bit 戦闘開始!!
[8bit]の攻撃 HIT [64bit]は1のダメージを受けた。
[64bit]の攻撃 HIT [8bit]は1のダメージを受けた。
[8bit]の攻撃 HIT [64bit]は19のダメージを受けた。
[64bit]の攻撃 HIT [8bit]は1のダメージを受けた。
[8bit]の攻撃 HIT [64bit]は56のダメージを受けた。
[64bit]の攻撃 HIT [8bit]は1のダメージを受けた。
[8bit]の攻撃 HIT [64bit]は14のダメージを受けた。
[64bit]の攻撃 HIT [8bit]は30のダメージを受けた。
[8bit]の攻撃 HIT [64bit]は29のダメージを受けた。
[64bit]の攻撃 HIT [8bit]は1のダメージを受けた。
[8bit]の攻撃 HIT [64bit]は62のダメージを受けた。
[8bit]が[64bit]を倒しました(ラウンド数:6)。
魔法のMD5 - MD5バトル http://www.newspace21.com/mix/btlm.php
0162,,・´∀`・,,)っ-○◎●2009/04/04(土) 17:23:28
>>159
DLLを64ビット化すればいいんじゃね?
0163デフォルトの名無しさん2009/04/04(土) 18:18:48
シームレスに呼べないのはイタイな。
0164デフォルトの名無しさん2009/04/04(土) 21:19:19
そりゃ、そういうものだから
0165デフォルトの名無しさん2009/04/05(日) 09:14:17
なんでもシームレスにするのがMSのオハコだろう?
0166デフォルトの名無しさん2009/04/05(日) 09:36:29
早くWin64sを開発する仕事に取りかかるんだ
0167デフォルトの名無しさん2009/04/07(火) 03:30:19
スレタイ読んで、8バイトで実行ファイルを作る話かと思ったよ。
0168,,・´∀`・,,)っ-○◎●2009/04/07(火) 06:20:54
それでも・・・rubyならできるッ!

p 'hoge'
0169デフォルトの名無しさん2009/04/07(火) 08:34:29
>>168
それ実行ファイル違う。
0170デフォルトの名無しさん2009/04/07(火) 08:42:13
16bit COM形式なら
0171デフォルトの名無しさん2009/04/11(土) 13:13:36
こやつめw
0172デフォルトの名無しさん2009/04/18(土) 00:09:29
実行属性ついて(てシェルで解釈でき)りゃ実行ファイルだし、MS系でもbatだって実行ファイルだし。
0173デフォルトの名無しさん2009/05/09(土) 14:04:21
64bitVistaでグローバルフックってどんな感じにになるの?
32bitアプリと64bitアプリの両方のキーボード入力をフックしたいんだけど。
0174デフォルトの名無しさん2009/05/09(土) 14:20:22
ローレベルならすべての入力が通知されるよ
0175デフォルトの名無しさん2009/05/09(土) 14:32:52
ありがとうございすます。調べてみます。
0176デフォルトの名無しさん2009/08/21(金) 17:09:54
[dmd] 攻撃:27 素早さ:86 防御:90 命中:54 運:62 HP:295

c++ vs dmd 戦闘開始!!

長いので省略

[c++]と[dmd]の戦いは引き分けでした(ラウンド数:16)。

D言語強い
0177デフォルトの名無しさん2009/10/22(木) 17:08:31
Win7が出たので、そろそろWin64用のプログラムも、と思い始めたのですが、VS2005 Express Editionで開発は可能なのでしょうか。

コマンドラインからコンパイルをしたいので、cl.exe 相当でやる方法を知りたいのですが。
0178デフォルトの名無しさん2009/10/22(木) 17:21:33
何で2005なの?
EEで64bitは不可能ではないが骨が折れる
0179デフォルトの名無しさん2009/10/22(木) 17:31:15
おっとすまん、タイプミスした。VS2008 Express Edition

Express Editionだとやっぱり大変なのか
0180デフォルトの名無しさん2009/10/22(木) 17:42:04
まあSDKと組み合わせる必要があるのでターゲット用のSDK用意して試してみれば。
って64bit環境が無いと動かしてみることもできないからOSが先か。
0181デフォルトの名無しさん2009/10/22(木) 17:57:35
ハイブリッドでシームレスなOSが好みなら
Win9xでも使っとけw
0182デフォルトの名無しさん2009/10/22(木) 18:03:44
コマンドラインからなら2008eesp1とsdkfor7で簡単に作れる。
sdkfor7にx64のコマンドシェルが付いてくるのでそこからコマンド入れればいい。
IDEからは小細工が必要。
http://jenshuebel.wordpress.com/2009/02/12/visual-c-2008-express-edition-and-64-bit-targets/
0183デフォルトの名無しさん2009/10/22(木) 18:32:24
日本語の説明があった

ttp://d.hatena.ne.jp/n7shi/20091005
> Visual C++ 2008 Express Editionでx64開発
0184デフォルトの名無しさん2009/10/22(木) 18:53:58
>>183の方法はトリッキーな使い方を要求されるが、
>>182の方なら一度行ってしまえば後は上位エディションとほぼ同じ様にx64が扱える
0185デフォルトの名無しさん2009/10/23(金) 11:08:34
[D] 攻撃:97 素早さ:15 防御:22 命中:92 運:42 HP:291
[C+++] 攻撃:33 素早さ:60 防御:20 命中:93 運:90 HP:289

D vs C+++ 戦闘開始!!
[C+++]の攻撃 HIT [D]は1のダメージを受けた。
[D]の攻撃 HIT [C+++]は179のダメージを受けた。
[C+++]の攻撃 HIT [D]は23のダメージを受けた。
[D]の攻撃 HIT [C+++]は84のダメージを受けた。
[C+++]の攻撃 HIT [D]は86のダメージを受けた。
[D]の攻撃 HIT [C+++]は139のダメージを受けた。
[D]が[C+++]を倒しました(ラウンド数:3)。
0186デフォルトの名無しさん2009/10/23(金) 11:09:46
しまった・・・・

C+++ なんてどんな言語だよorz
0187,,・´∀`・,,)っ2009/11/07(土) 20:51:39
 
0188デフォルトの名無しさん2009/11/09(月) 08:00:50
nage
0189デフォルトの名無しさん2009/11/10(火) 01:48:03
>>185
もうそれ飽きた
0190デフォルトの名無しさん2009/11/19(木) 21:36:21
なあ、64bit版ってC言語のint型が64bit(8バイト)として認識されるって本当か?
0191デフォルトの名無しさん2009/11/19(木) 22:57:21
それは昔の間違った知識だ
0192デフォルトの名無しさん2009/11/20(金) 02:04:16
>>190
http://www.itmedia.co.jp/enterprise/articles/0506/13/news006_2.html
0193デフォルトの名無しさん2009/11/20(金) 06:21:37
>>185
なんとなくヤフオクの入札履歴の画面を思い出した
0194デフォルトの名無しさん2009/12/12(土) 00:38:54
もう int16 int32 int64
float32 float64

とかサイズが一目で分かりやすい用に並べてtypedefして使おう
0195デフォルトの名無しさん2009/12/12(土) 07:07:04
つstdint.h
0196デフォルトの名無しさん2009/12/14(月) 13:19:01
>stdint.h
kwsk
0197デフォルトの名無しさん2009/12/14(月) 17:27:39
ぐぐれよ
0198デフォルトの名無しさん2009/12/14(月) 18:55:01
入ったのがVC2010ってのがなぁ
0199デフォルトの名無しさん2009/12/25(金) 01:05:58
>>1
一般人には用がないと思うがAZ-Prologが64bit対応している。
いまなら評価版が落とせるそうで。しかし、使いどころが...。
ttp://www.az-prolog.com/modules/smartsection/item.php?itemid=17
■ このスレッドは過去ログ倉庫に格納されています