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

このエントリーをはてなブックマークに追加
1Windows厨&rlo;wwwね死はCAM。すでXUNILチンアやや
64bitCPUで64bit版ヴィスタ
どうやって64bitアプリケーション作るの?
2デフォルトの名無しさん:2007/02/03(土) 14:38:51
この板はプログラムを作る人のための板です。

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

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

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

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

既出?
6デフォルトの名無しさん: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++はいずれ進化した自分自身に滅ぼされるようだ
7デフォルトの名無しさん:2007/02/03(土) 16:36:50
1. C++
2. Oberon
3. Plankalkül
4. Prolog

C++つええwwwwwwww
8デフォルトの名無しさん: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)。
9デフォルトの名無しさん: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)。
10デフォルトの名無しさん: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
11デフォルトの名無しさん:2007/02/03(土) 18:01:27
前から思ってたんだけど、
C++ って、後置インクリメントだから、
結果はCと変わってないってことなんですよね?

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

(゚Д゚) ・・・。
16デフォルトの名無しさん:2007/02/04(日) 01:19:08
Java is money oriented language :-)
17デフォルトの名無しさん:2007/02/04(日) 04:40:00
まずFPGA(大規模なものが良い)を買う。
次に好きなように64bitCPUをHDLで作る。
18デフォルトの名無しさん: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)。
19デフォルトの名無しさん: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)。
20デフォルトの名無しさん: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)。
21デフォルトの名無しさん: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)。
22デフォルトの名無しさん:2007/02/10(土) 01:28:16
マジレスするとVisual Studio 2005 Standard以上を買え。それが無理ならWindows SDK。
23デフォルトの名無しさん:2007/02/10(土) 09:57:27
24デフォルトの名無しさん:2007/02/11(日) 14:53:37
>>18-21
C++ に勝てないと書いてあるのであって、c++ に勝てないと書いてあるわけではない。
25デフォルトの名無しさん:2007/04/05(木) 12:54:59
Vistaがみんなのてにわたるまぇ
26デフォルトの名無しさん:2007/04/24(火) 10:09:01
アリの巣コロリってあるじゃん。蟻の行列にポンと置くと、一瞬ビックリして列が乱れる。
邪魔だなと言わんばかりに迂回する列が出来る。
そのうち好奇心旺盛な一匹がアリの巣コロリに入る。
そいつをマネして何匹も入る。
毒とも知らずにツブツブを運び出す。一匹が一粒づつ。
いつのまにか行列はアリの巣コロリが折り返し地点になる。
黄色い粒と黒い蟻が作り出す模様は綺麗で見てて楽しい。
一匹が一粒づつ、丁寧にせっせと毒の粒を運ぶ。
せっせと、せっせと、せっせと、せっせと。
蟻さんって働き者だなと思う。俺も頑張らなきゃなと思う。
次の日、あれほど沢山いて俺を困らせた蟻が一匹もいない。
ほんとにいない。探してもいない。泣きたくなった。                   


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

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

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

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

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

>>1
Xcode 3.1でCocoaアプリ作る
コンパイル時に64Bitを指定
以上
67デフォルトの名無しさん:2008/06/17(火) 21:53:37
LONG_LONG LARGE_INTEGER
68デフォルトの名無しさん:2008/08/03(日) 23:54:56
__int64 LONGLONG DWORDLONG PtrToLong PtrToULong LONG_PTR ULONG_PTR
69デフォルトの名無しさん:2008/08/08(金) 18:49:14
PtrTo*、*ToPtrの存在価値
70デフォルトの名無しさん:2008/08/24(日) 00:26:55
>>61
いやそーゆーのじゃなくて、Win32 APIのしがらみのないやつ。
64ビットなのにFILETIME ft;ft.dwLowDateTimeとかアホすぎる。
71デフォルトの名無しさん:2008/08/24(日) 15:13:42
つ.NET Framework
72デフォルトの名無しさん:2008/08/26(火) 10:31:55
( ゚Д゚)イラネ
73デフォルトの名無しさん:2008/08/26(火) 10:44:08
わがままだなあ
74デフォルトの名無しさん:2008/09/03(水) 08:14:37
8オクテット・プログラミング?
結構制約多いな。
75デフォルトの名無しさん:2008/09/03(水) 19:50:52
Windows は何で LP64 にしなかったんだろう…
常に非互換な方に動くよね。これもしがらみ?
76デフォルトの名無しさん:2008/09/06(土) 16:07:11
LONG = 32ビット符号付き整数型
という定義だからどうしようもない。SDWORDって名前にすればよかったのに。
http://msdn.microsoft.com/en-us/library/aa383751.aspx
77デフォルトの名無しさん:2008/09/13(土) 23:08:05
どうせならQWORD。アセンブラもそうだし
78デフォルトの名無しさん:2008/09/13(土) 23:41:29
>>77
それは欲しい。DWORD64とかあほにもほどがある。
79,,・´∀`・,,)っ-○◎●:2008/09/21(日) 16:13:44
いっぽう、IntelはXMMWORD/YMMWORDなんてものを用意した
80デフォルトの名無しさん:2008/10/01(水) 14:59:41
>>79
あれはマルチメディアようのパックド演算用の単位だからちょっと意味が違う。
128bitや256bitとは見ずに32x4や32x8等と見るよ
81デフォルトの名無しさん:2008/10/04(土) 09:00:53
u_int ptr = addr;
ってやるとなんかアドレス取れない
64bitって糞だな
82,,・´∀`・,,)っ-○◎●:2008/10/04(土) 10:48:42
u_longかu_longlong使えば?
83デフォルトの名無しさん:2008/10/04(土) 11:35:45
そう言うときに使うのがint_ptr_tじゃないのか?
84デフォルトの名無しさん:2008/10/04(土) 11:36:53
訂正、intptr_t。
85デフォルトの名無しさん:2008/10/04(土) 11:42:28
uintで値取れない64bitが糞
86,,・´∀`・,,)っ-○◎●:2008/10/04(土) 11:54:38
IP64な処理系でも使えよwww
87デフォルトの名無しさん:2008/10/04(土) 19:31:48
Linux kernel だと unsigned long がアドレス値の型ということになっているな
88デフォルトの名無しさん:2008/10/10(金) 06:17:50
>>81,85の頭って糞だな
89デフォルトの名無しさん:2008/10/25(土) 21:05:52
90デフォルトの名無しさん: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))
91デフォルトの名無しさん:2008/10/26(日) 11:52:34
Windows NT 4.0 (Alpha) と Visual Studio C++ for RISC
92デフォルトの名無しさん:2008/10/26(日) 12:35:11
>>91
Alpha版NTは32bitだが?
93デフォルトの名無しさん:2008/10/26(日) 15:19:49
中間
94デフォルトの名無しさん:2008/11/15(土) 09:50:15
LP64とかLLP64ってコンパイラ毎の仕様だよね?
Windows 64向けのGCCは、ちゃんとLLP64に合わせてるの?
95デフォルトの名無しさん: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
96デフォルトの名無しさん:2008/11/15(土) 16:10:51
64bitでlong=4ってマジクソだな
97デフォルトの名無しさん:2008/11/15(土) 16:18:34
intやlongといった仕様がどうなのかなと思うけど
98デフォルトの名無しさん:2008/11/15(土) 16:37:47
long long が 16 じゃないのがイカさねえ仕様だな
99デフォルトの名無しさん:2008/11/15(土) 17:06:21
>>96
long = 4バイト決め打ちで書いてあるソースが使えなくなっちゃうぢゃないか
100デフォルトの名無しさん:2008/11/15(土) 17:45:02
>>99
そんなクソなソースコードは放っておいてよろしい
101デフォルトの名無しさん:2008/11/15(土) 17:50:01
>>95
thx

これからはプラットフォームAPI以外はstdint.hとか使ってくべきなのかな。
それならいっそ、業務用途ならもうJavaだけでいいやとも思い始めたり。
102デフォルトの名無しさん:2008/11/16(日) 08:03:29
>76
WindowsのC++開発環境って、やたらめったらtypedefしてあるから、
こういう時にさくっと移行できるようにしてるのかと思ったら、そうじゃないのか。
103デフォルトの名無しさん:2008/11/16(日) 12:01:14
HANDLEとかWPARAMとかはさくっと16→32→64ビットに変化しております。
104デフォルトの名無しさん:2008/11/16(日) 13:25:14
型名にサイズを現す文字が入ってるのに実際のサイズと違ってて不気味だけどなー
Win16時代は16bitだったWPARAM(word)やWin64で64bitになったLPARAM(long)とか。
DWORD_PTRなんかもそうか。
105デフォルトの名無しさん:2008/11/16(日) 14:22:06
そもそも 1ワードが16ビットってのは違和感あるけどなあ
8086とかの頃はそうだったんだろうけど
106デフォルトの名無しさん: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
107デフォルトの名無しさん:2008/11/16(日) 18:59:04
>104
よく分からんのだが、DWORD_PTR は DWORD* じゃダメなのか?
108デフォルトの名無しさん:2008/11/16(日) 19:05:27
DWORD_PTR は PDWORDじゃないぞ
109,,・´∀`・,,)っ-○◎○:2008/11/16(日) 21:45:57
DWORD_PTRって確かに難しいな。
強いて言うとポインタ型と同じサイズの符号なし整数型なんだが

offset_tか?


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

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

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

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

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

で、おまいの脳内ではPentium 4以降は128ビットCPUなわけだな。
132デフォルトの名無しさん:2008/11/26(水) 16:58:42
代表的8bitCPUのひとつといわれる8080/Z80がALU4bit、データバス幅8bit、アドレスバス幅16bit、レジスタ幅8/16bit、命令長可変octetの変態構成だからな
宣伝語以上の意味は無いな
133,,・∀・,,)っ-○---:2008/11/26(水) 18:11:36
食べられてしまった
134デフォルトの名無しさん:2008/11/26(水) 21:03:15
int64 て美しくないよね。
135デフォルトの名無しさん: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)。
136デフォルトの名無しさん:2008/11/27(木) 11:06:19
ど〜でも、いいですよ〜
137デフォルトの名無しさん:2008/11/27(木) 21:40:30
unsignedをさくっと捨てたJavaはいい判断をしたと思う。
容量が2倍になったって別にありがたくもなんとも無いんだよな。

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

けれど、C/C++でintばっかり使うのは勘弁してくれ。
unsignedとかsize_tとか使ってくれ。
141デフォルトの名無しさん:2008/12/01(月) 10:33:44
>>137
>容量が2倍になったって別にありがたくもなんとも無いんだよな。
そういうふうに思えるようなソフトしか作る機会がない。って事でしょ。
押し付けよくない!
142デフォルトの名無しさん:2008/12/01(月) 10:56:53
不用意に符号拡張されると困る
143デフォルトの名無しさん:2008/12/01(月) 19:39:23
QWORD見るたびにVC++はなんでDWORD64なんて作ったんだよと思うよ
144デフォルトの名無しさん:2008/12/01(月) 20:11:24
QWORDみたいな変な読み替えで誰が得するのかよく分からん。
longも同様。long > intだけじゃなくlong == intな時もあるって、それ何の役に立つの?
long longとか無様すぎ。
「こだわり無し」を示すint以外は、全部ビット数指定(int64_t, int32_t)でいいんじゃないか?
145デフォルトの名無しさん:2008/12/01(月) 20:31:10
その方針はありだと思う。
だが、そうだとしたらUINT64があるんだから、
やっぱりDWORD64は要らないだろと結びたい。
146デフォルトの名無しさん:2008/12/03(水) 11:58:05
ど〜でもいいですよ〜
147デフォルトの名無しさん:2008/12/21(日) 18:15:33
私のビット数は53万です。
148デフォルトの名無しさん: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*にしない。
149デフォルトの名無しさん:2008/12/29(月) 10:42:31
P○○がポインタで、○○_PTRはポインタサイズの数値
150デフォルトの名無しさん:2008/12/29(月) 15:05:58
そりゃ自分が書いたやつだけ相手にしてりゃ困ることは少ないだろうよ
151デフォルトの名無しさん:2009/01/01(木) 14:54:23
stdint.h か basetsd.h 使えばいいのに
152デフォルトの名無しさん: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;
153デフォルトの名無しさん:2009/01/04(日) 02:41:05
C++ならboost/cstdint.hppという手もある。
154デフォルトの名無しさん: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)。
155デフォルトの名無しさん:2009/03/26(木) 16:35:50
.NETなら意識しなくていいんだな?
156デフォルトの名無しさん:2009/03/26(木) 16:37:14
.NETの場合、AnyCPUなら意識しないでいい。
ただしWIN32のDLLと混在させる場合等、x86にしなくてはならない場合もある。
157デフォルトの名無しさん:2009/03/27(金) 12:43:21
その結果、結論として意識する
158デフォルトの名無しさん: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)。

わろた。
159デフォルトの名無しさん:2009/04/03(金) 21:51:23
64bitのexeから32bitのDLLの関数呼ぶ方法ある?
160デフォルトの名無しさん:2009/04/03(金) 22:09:10
>>159
ない
プロセス間通信等で間接的に利用するしかない
161デフォルトの名無しさん: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
162,,・´∀`・,,)っ-○◎●:2009/04/04(土) 17:23:28
>>159
DLLを64ビット化すればいいんじゃね?
163デフォルトの名無しさん:2009/04/04(土) 18:18:48
シームレスに呼べないのはイタイな。
164デフォルトの名無しさん:2009/04/04(土) 21:19:19
そりゃ、そういうものだから
165デフォルトの名無しさん:2009/04/05(日) 09:14:17
なんでもシームレスにするのがMSのオハコだろう?
166デフォルトの名無しさん:2009/04/05(日) 09:36:29
早くWin64sを開発する仕事に取りかかるんだ
167デフォルトの名無しさん:2009/04/07(火) 03:30:19
スレタイ読んで、8バイトで実行ファイルを作る話かと思ったよ。
168,,・´∀`・,,)っ-○◎●:2009/04/07(火) 06:20:54
それでも・・・rubyならできるッ!

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

c++ vs dmd 戦闘開始!!

長いので省略

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

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

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

Express Editionだとやっぱり大変なのか
180デフォルトの名無しさん:2009/10/22(木) 17:42:04
まあSDKと組み合わせる必要があるのでターゲット用のSDK用意して試してみれば。
って64bit環境が無いと動かしてみることもできないからOSが先か。
181デフォルトの名無しさん:2009/10/22(木) 17:57:35
ハイブリッドでシームレスなOSが好みなら
Win9xでも使っとけw
182デフォルトの名無しさん: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/
183デフォルトの名無しさん:2009/10/22(木) 18:32:24
日本語の説明があった

ttp://d.hatena.ne.jp/n7shi/20091005
> Visual C++ 2008 Express Editionでx64開発
184デフォルトの名無しさん:2009/10/22(木) 18:53:58
>>183の方法はトリッキーな使い方を要求されるが、
>>182の方なら一度行ってしまえば後は上位エディションとほぼ同じ様にx64が扱える
185デフォルトの名無しさん: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)。
186デフォルトの名無しさん:2009/10/23(金) 11:09:46
しまった・・・・

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

とかサイズが一目で分かりやすい用に並べてtypedefして使おう
195デフォルトの名無しさん:2009/12/12(土) 07:07:04
つstdint.h
196デフォルトの名無しさん:2009/12/14(月) 13:19:01
>stdint.h
kwsk
197デフォルトの名無しさん:2009/12/14(月) 17:27:39
ぐぐれよ
198デフォルトの名無しさん:2009/12/14(月) 18:55:01
入ったのがVC2010ってのがなぁ
199デフォルトの名無しさん
>>1
一般人には用がないと思うがAZ-Prologが64bit対応している。
いまなら評価版が落とせるそうで。しかし、使いどころが...。
ttp://www.az-prolog.com/modules/smartsection/item.php?itemid=17