したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

管理人の独り言(プログラミング関連)

1みみず★:2008/08/10(日) 23:28:15
あまりにもプログラミングの内容が増えすぎた。
よって隔離スレの中を更に隔離。

1278774さん:2009/01/20(火) 20:41:28 ID:fHt2HuPQ0
フィボナッチ数列に関する3つのアルゴリズムの速度比較@Ruby - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20090120/1232446370
----
リアルにlog(n)で解ける理由分からなくて、俺涙目w

1279774さん:2009/01/20(火) 20:42:52 ID:fHt2HuPQ0
Matrixのコードを読めばいいか。

1280774さん:2009/01/20(火) 20:44:40 ID:fHt2HuPQ0
発見。
-----
def ** (other)
if other.kind_of?(Integer)
x = self
if other <= 0
x = self.inverse
return Matrix.identity(self.column_size) if other == 0
other = -other
end
z = x
n = other - 1
while n != 0
while (div, mod = n.divmod(2)
mod == 0)
x = x * x
n = div
end
z *= x
n -= 1
end
z
elsif other.kind_of?(Float) || defined?(Rational) && other.kind_of?(Rational)
Matrix.Raise ErrOperationNotDefined, "**"
else
Matrix.Raise ErrOperationNotDefined, "**"
end
end

1281774さん:2009/01/20(火) 20:50:57 ID:fHt2HuPQ0
ああ!
思い出した。
2でどんどんと割っていけば良いじゃん!(分かる人にしか分からない。)

1282774さん:2009/01/20(火) 20:52:57 ID:fHt2HuPQ0
2^23 = (2 ^ (2 * 2 * 2 * 2)) * (2 ^ (2 * 2)) * (2 ^ 2) * 2

こんな感じか。

1283774さん:2009/01/20(火) 20:55:24 ID:fHt2HuPQ0
つまり、2の四乗を計算するんだったら、2を四回そのままかけるんじゃなくて、2の二乗を二乗した方が計算が少なくて済むね!っていうこと。

メモリを食わないようにするんだったら、結構時間かかる気がする。
そんなこと無いか?

どちらにせよ、一度二進法に展開してごにょごにょ。

1284774さん:2009/01/20(火) 22:09:09 ID:fHt2HuPQ0
こうか。こうか。
汎用的な1の作り方が分からないって言う。
だから、s / sにしてやった。
まあこれなら0^0とかやったらあぼーんするので妥当か。
-----
template<typename T>
T pow(const T &s, unsigned int o){
if(o == 0){
return s / s;
}else if(o == 1){
return s;
}

T b = s, r = s / s;

while(o){
if(o & 0x00000001){
r *= b;
}
b *= b;
o /= 2;
}

return r;
}

1285774さん:2009/01/20(火) 22:12:13 ID:fHt2HuPQ0
0.0 / 0.0 はエラーにならないね。
まあ精度の問題もあるしね。

1286774さん:2009/01/21(水) 16:34:38 ID:fHt2HuPQ0
Eclipse 3.4プラグインのインストール/設定方法 〜Eclipse 3.4入門〜 :CodeZine
http://codezine.jp/article/detail/3446

1287774さん:2009/01/21(水) 16:36:19 ID:fHt2HuPQ0
>>1285
エラーにならないというのは、例外にならないということです。

1288774さん:2009/01/21(水) 18:09:19 ID:fHt2HuPQ0
CreateAcceleratorTable 関数
http://msdn.microsoft.com/ja-jp/library/cc410683.aspx
-----
アクセラレータは動的に生成できるようだ。
リソースは全て動的に生成できるみたいだなあ。
まあ、リソースがどのように管理されているかは知らないのだが。

1289774さん:2009/01/21(水) 18:10:30 ID:fHt2HuPQ0
typedef struct tagACCEL {
#ifndef _MAC
BYTE fVirt; /* Also called the flags field */
WORD key;
WORD cmd;
#else
WORD fVirt; /* Also called the flags field */
WORD key;
DWORD cmd;
#endif
} ACCEL, *LPACCEL;

1290774さん:2009/01/21(水) 18:10:55 ID:fHt2HuPQ0
typedef struct tagPAINTSTRUCT {
HDC hdc;
BOOL fErase;
RECT rcPaint;
BOOL fRestore;
BOOL fIncUpdate;
BYTE rgbReserved[32];
} PAINTSTRUCT, *PPAINTSTRUCT, *NPPAINTSTRUCT, *LPPAINTSTRUCT;

1291774さん:2009/01/21(水) 18:33:59 ID:fHt2HuPQ0
CopyAcceleratorTable 関数
http://msdn.microsoft.com/ja-jp/library/cc410676.aspx
-----
HACCELからACCEL構造体への変換。エントリの数を調べることも可。

1292774さん:2009/01/21(水) 18:38:46 ID:fHt2HuPQ0
GetDoubleClickTime 関数
http://msdn.microsoft.com/ja-jp/library/cc364628.aspx

1293774さん:2009/01/21(水) 18:54:16 ID:fHt2HuPQ0
TTBase - 単体では 常駐するだけのソフト
http://ttbase.sourceforge.jp/
-----
TTBASEとか言うソフトが有るんだ。
俺がいたずら用に作ったようなソフトと一緒だなw
発想のレベルが低いと言うことか。

1294774さん:2009/01/21(水) 20:38:14 ID:fHt2HuPQ0
Subversionの基礎練習
http://www.hyuki.com/techinfo/svninit.html
-----
遊びたい。

1295774さん:2009/01/21(水) 21:00:32 ID:fHt2HuPQ0
C:.
│ format
│ README.txt

├─conf
│ authz
│ passwd
│ svnserve.conf

├─db
│ │ current
│ │ format
│ │ fs-type
│ │ txn-current
│ │ txn-current-lock
│ │ uuid
│ │ write-lock
│ │
│ ├─revprops
│ │ └─0
│ │ 0
│ │
│ ├─revs
│ │ └─0
│ │ 0
│ │
│ ├─transactions
│ └─txn-protorevs
├─hooks
│ post-commit.tmpl
│ post-lock.tmpl
│ post-revprop-change.tmpl
│ post-unlock.tmpl
│ pre-commit.tmpl
│ pre-lock.tmpl
│ pre-revprop-change.tmpl
│ pre-unlock.tmpl
│ start-commit.tmpl

└─locks
db-logs.lock
db.lock

1296774さん:2009/01/21(水) 21:17:43 ID:fHt2HuPQ0
取り敢えず、書いてあることは一通りやってみた。
面白い。
svn checkout URI
だけ使えれば、十分実用には耐えられる。

1297774さん:2009/01/21(水) 21:25:51 ID:fHt2HuPQ0
svn checkout URI DirectoryName
でURIの内容をDirectoryNameに貰ってくる。一番最初にやる。

svn update
で更新された内容を貰ってくる。作業前にはやった方が良い。

svn commit -m "comment"
更新した内容を送信する。
これくらい?

svn mkdir directoryname
でsvnの管理に追加しながらフォルダを作成。
ファイルを追加する方法が有るかもしれないが分からない。

svn status
ワークコピーとサーバーを比べてコミットしてないファイルが有るかとか、svnで管理していないファイルが無いかとかそういうのを出力してくれる。

svn add filename
svnの管理下にfilenameを置く。

-----
俺の感覚的にはこんな感じ。

1298774さん:2009/01/22(木) 20:55:20 ID:fHt2HuPQ0
http://extensions.tabbrowser.jp/plugins/files/spec100/UserActionExtension.si
-----
AddFolderがおかしい。

1299774さん:2009/01/24(土) 20:06:52 ID:fHt2HuPQ0
漸く情報オリンピックから資料が送られてきた。
音沙汰無いのは怖すぎる。

1300774さん:2009/01/24(土) 21:32:12 ID:fHt2HuPQ0
これからC++でlog用の関数を作るときは、
-----
void log(std::function<void (void)> func){
#define DEBUG
func();
#ifdef
}
-----
とすれば良いんですね。分かります。
-----
void log(std::std::reference_closure<void (void)> func){
//同様
}
-----
の方が最適化されやすいか?
実際に試してみないと分からんな。

1301774さん:2009/01/24(土) 21:36:03 ID:fHt2HuPQ0
呼び出す時は、
-----
log([](){
return "やらないか?";
});
-----
みたいに?
じゃあ、void (void)
じゃなくて、
std::string (void)
だわ。

1302774さん:2009/01/24(土) 21:40:48 ID:fHt2HuPQ0
これならば、文字列の生成が、Release版の時に行われなくなっておいしい。
まあこの例だと全く良いところが無いのだが。
でも文字列生成ならば普通にprintf使えばよくね?

std::string (void)
じゃなくて
std::string && (void)
の方が良いですね。はい。

1303774さん:2009/01/24(土) 22:56:01 ID:fHt2HuPQ0
俺は正確なtemplateの仕様を理解してなかったようだ。

C++ Labyrinth
http://www.fides.dti.ne.jp/~oka-t/cpp-labyrinth.html

1304774さん:2009/01/24(土) 23:34:35 ID:fHt2HuPQ0
うーん。
ゲームとか作るんだったら、プログラミング言語(インタプリタ)を書けないといけないのかな?
そっちの方が拡張が楽なようだが。
だけれども、毎回文字列を解析していたら時間がかかるし、ILを使うのもやっぱり重くなりそうだ。

C/C++と同じぐらいの速度が出て簡単にプログラムが書けるようなものが有ったらとても嬉しいのだが。

1305774さん:2009/01/25(日) 14:10:14 ID:fHt2HuPQ0
プロジェクトを実行しようとしているときにエラーが発生しました。デバックを開始できません。 結合ハンドルが無効です。
http://blogs.wankuma.com/trapemiya/archive/2005/12/19/20096.aspx
-----
これでC#がデバッグできるようになった。
全然出来なくてC#を敬遠していたがこれで開発が出来るようになるだろう。きっと。

1306774さん:2009/01/25(日) 17:04:11 ID:fHt2HuPQ0
glutでシューティングゲームは作れるのだろうか。
無理か?
いや可能だろう。
だが、60fpsに合わせる方法が分からない。
出来ることならばタイマーは使いたくないのだが・・・
無理か。

1307774さん:2009/01/25(日) 17:08:11 ID:fHt2HuPQ0
今思えば、C++0xではthreadが使えるじゃん。
だけれどもSleepはなしですか?

1308774さん:2009/01/25(日) 17:13:10 ID:fHt2HuPQ0
あった。あった。

std::this_thread::sleep_for(std::chrono::milliseconds(10));

タイプ量大杉だろwwwwww

1309774さん:2009/01/25(日) 17:20:13 ID:fHt2HuPQ0
言語仕様にもっと高性能タイマーが有ると便利なのだがなあ。

1310774さん:2009/01/25(日) 17:34:19 ID:fHt2HuPQ0
くわあああああああああああああああああああああああああああああああああ
なんだかバージョン管理ソフトが無性に利用したくなって、物凄くVisualStudioが見劣りするぜ!
viは俺的に使いづらいので、Emacsでも使ってみるか?
Windows版有るのか?

1311774さん:2009/01/25(日) 17:35:53 ID:fHt2HuPQ0
くわああああああああああああああああああああ
普通のフリーソフトみたいに落とさせろ!
そっちのバージョン管理とかコンパイルとかやりたくねええええええええええええええんだよ!!!!

1312774さん:2009/01/25(日) 17:38:47 ID:fHt2HuPQ0
VC++からコマンドプロンプトが直接利用できないのがいけないんだよ!
もっと低レベルにしろ、こんにゃろう。

1313774さん:2009/01/25(日) 17:46:18 ID:fHt2HuPQ0
暫くの間は、VC++からおさらばしよう。

1314774さん:2009/01/25(日) 17:52:58 ID:fHt2HuPQ0
>>1308
間違いなく
void thread_sleep(unsigned int time){
std::this_thread::sleep_for(std::chrono::milliseconds(time));
}
という関数を皆が書くだろう。

1315774さん:2009/01/25(日) 17:55:44 ID:fHt2HuPQ0
あるzipを解凍していて、残り20時間とか出ると萎えるわ・・・

1316774さん:2009/01/25(日) 18:10:23 ID:fHt2HuPQ0
と思ったら、普通に十分ぐらいで解凍できたって言う

1317774さん:2009/01/25(日) 18:15:28 ID:fHt2HuPQ0
emacsを使う計画が、Eclipseに転がり込んでいる件について。

1318774さん:2009/01/25(日) 18:19:12 ID:fHt2HuPQ0
便利になったものだ。

1319774さん:2009/01/25(日) 19:59:08 ID:fHt2HuPQ0
漸くEclipseでコンパイルからデバッグに持って行けるようになった。
かなり時間かかった。
いやはや・・・

1320774さん:2009/01/25(日) 20:07:49 ID:fHt2HuPQ0
Eclipse重すぎる。
ポータブルハードディスクに入れているためか。

1321774さん:2009/01/25(日) 20:15:55 ID:fHt2HuPQ0
これで、本戦のうちの一つの環境を手に入れることを出来たぜ。

1322774さん:2009/01/25(日) 23:50:04 ID:fHt2HuPQ0
逆汗したのをC++ソースに落とした。
-----
bool ExpendSar(FILE *fp, int *p/*?*/){
//2112bytes Allocation
FILE *l4 = 0;
void *l3 = 0;
BYTE l1_3 = 0;

wchar_t l528[260];
GetTempPathW(260, l528);

char l398[1024];
if(!fgets(l398, 1024, fp)) return false;

//ebx == 1

for(;;){
if(!strspn(l398, "CheckSum=")){
int l2 = atol(l398);

wchar_t l142[260/*正確には不明*/];
wsprintfW(l142, L"%s/Sleipnir_Sar_Temp_%08d", l528, *p);

if(FMisc::IsWinNT()){
if(!FMisc::IsFileExist(l142)){
SECURITY_ATTRIBUTES sa;
memset(&sa, 0, sizeof(sa));

SECURITY_DESCRIPTOR sd;

InitializeSecurityDescriptor(&sd, 1);
SetSecurityDescriptorDacl(&sd, 1, 0, 1);

DWORD l5 = 0;

HANDLE hFile = CreateFileW(
l142,
GENERIC_WRITE | GENERIC_ALL,
FILE_SHARE_READ | FILE_SHARE_WRITE,
&sa,
CREATE_ALWAYS,
FILE_ATTRIBUTE_ARCHIVE,
NULL
);

FlushFileBuffers(hFile);
CloseHandle(hFile);
}
}

FILE *l4 = _wfopen(l142, L"wb");
if(!cfp){
if(l3) free(l3);

return false;
}

l3 = malloc(l2);

if(!l3){
if(l4) fclose(l4);
if(l3) free(l3);

return false;
}

if(fread(l3, 1, l2, fp) != l2){
if(l4) fclose(l4);
if(l3) free(l3);

return false;
}

if(fwrite(l3, 1, l2, l4) != l2){
if(l4) fclose(l4);
if(l3) free(l3);

return false;
}

free(l3);
fclose(l4);

if(fread(l398, 1, 1, fp) != 1){
if(l4) fclose(l4);
if(l3) free(l3);

return false;
}

l1_3 += l2; //MOV AL,BYTE PTR SS:[LOCAL.2]
//ADD BYTE PTR SS:[LOCAL.1+3],AL
++(*p);

if(!fgets(l398, 1024, fp)){
if(l4) fclose(l4);
if(l3) free(l3);

return false;
}

}else{
if(l1_3 != atol(l398 + 9)){
if(l4) fclose(l4);
if(l3) free(l3);

return false;
}else{
return true;
}
}
}
}

1323774さん:2009/01/26(月) 19:54:24 ID:fHt2HuPQ0
#define _CRT_SECURE_NO_WARNINGS

#include <iostream>

#include <cstdio>
#include <cstdlib>
#include <ctime>
#include <cctype>
#include <climits>

#include <windows.h>

int main(int argc, char **argv){
FILE *in = std::fopen("input.sar", "rb");
if(!in) return -1;

try{
unsigned char checksum = 0;

for(;;){
int c = std::fgetc(in);
if(c == EOF){
throw std::exception("fgetcがEOFを返した");
}
if(std::isdigit(c)){
//atol的な何か。
unsigned int size = 0;
do{
if(UINT_MAX / 10 - (c - '0') < size){
throw std::exception("オーバーフロー");
}
size = size * 10 + (c - '0');
c = std::fgetc(in);
if(c == EOF){
throw std::exception("fgetcがEOFを返した");
}
}while(std::isdigit(c));

checksum += size;

if(c != 0x0A){
throw std::exception("sar形式のファイルでない");
}

std::fpos_t fpos;
if(std::fgetpos(in, &fpos) != 0){
throw std::exception("fgetpos() Error");
}
fpos += size;
if(std::fsetpos(in, &fpos) != 0){
throw std::exception("fsetpos() Error");
}

c = std::fgetc(in);

if(c != 0x0A){
throw std::exception("sar形式のファイルでない");
}
}else{
if(c == 'C'){
char cs[8];
std::fread(cs, 1, 8, in);
if(std::memcmp(cs, "heckSum=", 8) == 0){
unsigned char f_cs = 0;
for(;;){
c = std::fgetc(in);
if(c == EOF){
throw std::exception("fgetsがEOFを返した");
}
if(!std::isdigit(c)){
break;
}
if(UCHAR_MAX / 10 - (c - '0') < f_cs){
throw std::exception("オーバーフロー");
}
f_cs = f_cs * 10 + (c - '0');
}
if(c != 0x0A){
throw std::exception("sar形式のファイルでない");
}

//最後に実行される

if(checksum == f_cs){
std::cout << "OK!" << std::endl;
}else{
std::cout << "NG!" << std::endl;
}

break;
}else{
throw std::exception("sar形式のファイルでない");
}
}else{
throw std::exception("sar形式のファイルでない");
}
}
}
}catch(std::exception &e){
std::cerr << e.what() << std::endl;
std::fclose(in);
return -2;
}
}

1324774さん:2009/01/27(火) 19:46:12 ID:fHt2HuPQ0
Emacs初心者向け記事へのリンク集 - ’(rubikitch wanna be (a . lisper))
http://d.hatena.ne.jp/rubikitch/20090127/emacsnewbies

1325774さん:2009/01/27(火) 20:44:56 ID:fHt2HuPQ0
さっき初めてC言語にバイナリサーチの関数が有ることを知った。

1326774さん:2009/01/27(火) 23:04:59 ID:fHt2HuPQ0
書いたけれども、意味がない
-----
#include <windows.h>
#include <map>
#include <vector>
#include <algorithm>
#include <boost/utility.hpp>

class SolidBrushManager : boost::noncopyable{
private:
std::map<COLORREF, HBRUSH> buff;

~SolidBrushManager(){
std::map<COLORREF, HBRUSH>::iterator it = buff.begin();
for(; it != buff.end(); ++it){
DeleteObject((*it).second);
}
}

public:
static
SolidBrushManager &
GetInstance(){
static SolidBrushManager sbm;
return sbm;
}

HBRUSH
GetBrush(BYTE r, BYTE g, BYTE b){
COLORREF color = RGB(r, g, b);

std::map<COLORREF, HBRUSH>::iterator it = buff.find(color);
if(it != buff.end()){
return (*it).second;
}

HBRUSH hBrush = CreateSolidBrush(color);
if(hBrush){
buff.insert(std::make_pair(color, hBrush));
}
return hBrush;
}
};

1327774さん:2009/01/27(火) 23:11:14 ID:fHt2HuPQ0
暫くの間、プログラミングはやめよう。

1328774さん:2009/01/28(水) 18:49:36 ID:fHt2HuPQ0
【ハウツー】Cアプリを高速化せよ! - 正式リリースされたgoogle-perftoolsを試す (1) google-perftoolsとは | エンタープライズ | マイコミジャーナル
http://journal.mycom.co.jp/articles/2009/01/27/perftools/index.html

1329774さん:2009/01/28(水) 21:13:22 ID:fHt2HuPQ0
新しいgccを入れたので、以前のバージョンのgccでコンパイルするには、
-----
gcc -V 3.4.5 -b mingw32
-----
とする必要がある。

1330774さん:2009/01/28(水) 21:16:06 ID:fHt2HuPQ0
何故これのコンパイルが通らないのかが、今の僕には理解できない。
-----
C:\Documents and Settings\Owner\デスクトップ>gcc -o test.exe test.cpp
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc5rATQY.o:test.cpp:(.text+0x19): undefined refe
rence to `std::cout'
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc5rATQY.o:test.cpp:(.text+0x1e): undefined refe
rence to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <st
d::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char
const*)'
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc5rATQY.o:test.cpp:(.text+0x26): undefined refe
rence to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std
::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc5rATQY.o:test.cpp:(.text+0x2e): undefined refe
rence to `std::ostream::operator<<(std::ostream& (*)(std::ostream&))'
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc5rATQY.o:test.cpp:(.text+0x47): undefined refe
rence to `std::ios_base::Init::~Init()'
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc5rATQY.o:test.cpp:(.text+0x6a): undefined refe
rence to `std::ios_base::Init::Init()'
collect2: ld returned 1 exit status

1331774さん:2009/01/28(水) 21:49:32 ID:fHt2HuPQ0
-lstdc++
をつけるか、
g++
でコンパイルすれば良いみたい。

1332774さん:2009/01/28(水) 21:54:44 ID:fHt2HuPQ0
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Owner>cd "C:\Documents and Settings\Owner\デスクトップ
\"

C:\Documents and Settings\Owner\デスクトップ>gcc
gcc: no input files

C:\Documents and Settings\Owner\デスクトップ>gcc -o test.exe test.cpp
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc1A8umX.o:test.cpp:(.text+0xd): undefined refer
ence to `std::string::size() const'
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc1A8umX.o:test.cpp:(.text+0x60): undefined refe
rence to `std::string::operator[](unsigned int) const'
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc1A8umX.o:test.cpp:(.text+0x9e): undefined refe
rence to `std::string::operator[](unsigned int) const'
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc1A8umX.o:test.cpp:(.text+0xcc): undefined refe
rence to `std::string::operator[](unsigned int) const'
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc1A8umX.o:test.cpp:(.text+0x133): undefined ref
erence to `std::cout'
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc1A8umX.o:test.cpp:(.text+0x138): undefined ref
erence to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <s
td::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char
const*)'
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc1A8umX.o:test.cpp:(.text+0x140): undefined ref
erence to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, st
d::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc1A8umX.o:test.cpp:(.text+0x148): undefined ref
erence to `std::ostream::operator<<(std::ostream& (*)(std::ostream&))'
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc1A8umX.o:test.cpp:(.text+0x171): undefined ref
erence to `std::ios_base::Init::Init()'
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc1A8umX.o:test.cpp:(.text+0x18c): undefined ref
erence to `std::ios_base::Init::~Init()'
collect2: ld returned 1 exit status

C:\Documents and Settings\Owner\デスクトップ>gcc -o test.exe test.cpp libstdc++
gcc: libstdc++: No such file or directory

C:\Documents and Settings\Owner\デスクトップ>gcc -o test.exe test.cpp libstdc++
gcc: libstdc++: No such file or directory

C:\Documents and Settings\Owner\デスクトップ>gcc -o test.exe test.cpp -llibstdc+
+
C:\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: cannot fin
d -llibstdc++
collect2: ld returned 1 exit status

C:\Documents and Settings\Owner\デスクトップ>gcc -o test.exe test.cpp -lstdc++

C:\Documents and Settings\Owner\デスクトップ>gcc -o test.exe test.cpp -lstdc++
test.cpp: In function `int main(int, char**)':
test.cpp:8: error: no matching function for call to `getline(std::istream&, std:
:string)'
C:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/basic_s
tring.h:2362: note: candidates are: std::basic_istream<_CharT, _Traits>& std::ge
tline(std::basic_istream<_CharT, _Traits>&, std::basic_string<_CharT, _Traits, _
Alloc>&) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::al
locator<char>]

C:\Documents and Settings\Owner\デスクトップ>gcc -o test.exe test.cpp -lstdc++

C:\Documents and Settings\Owner\デスクトップ>gcc -o test.exe test.cpp -lstdc++

C:\Documents and Settings\Owner\デスクトップ>gcc -o test.exe -O3 test.cpp -lstdc
++

C:\Documents and Settings\Owner\デスクトップ>gcc -o test.exe -O3 -Wall test.cpp
-lstdc++

C:\Documents and Settings\Owner\デスクトップ>

1333774さん:2009/01/28(水) 21:55:17 ID:fHt2HuPQ0
C:\Documents and Settings\Owner\デスクトップ>type test.cpp
#include <iostream>
#include <string>

using namespace std;

int main(int argc, char **argv){
cout << "test" << endl;
string str;
getline(cin, str);
}

1334774さん:2009/01/28(水) 21:59:27 ID:fHt2HuPQ0
別に全てをCUIでやる必要なんて無くて、CUIの方が早くできることをCUIでやればいいのだ。
微妙に違う適材適所と言うことだ。適地適作。

1335774さん:2009/01/28(水) 22:30:38 ID:fHt2HuPQ0
gcc -o test.exe -O3 -Wall test.cpp -lstdc++
-----
-lは後ろに付けたものをリンクするようである。
C++をgccでコンパイルするには必要。
g++では不要。

1336774さん:2009/01/28(水) 22:37:26 ID:fHt2HuPQ0
恐らく、g++は-lstdc++とかを付けて呼び出しているだけだ。
と某所に書かれていた。
ああ、emacs使いたい・・・

1337774さん:2009/01/28(水) 23:25:38 ID:fHt2HuPQ0
emacs使いにくい。
vimを少しでも触ったためか・・・

1338774さん:2009/01/29(木) 18:35:57 ID:fHt2HuPQ0
#define _CRT_SECURE_NO_WARNINGS

#include <iostream>

#include <cstdio>
#include <cstdlib>
#include <ctime>
#include <cctype>
#include <climits>

#include <windows.h>

int main(int argc, char **argv){
FILE *in = std::fopen("input.sar", "rb");
if(!in) return -1;

try{
unsigned char checksum = 0;

for(;;){
int c = std::fgetc(in);
if(c == EOF){
throw std::exception("fgetcがEOFを返した");
}
if(std::isdigit(c)){
//atol的な何か。
unsigned int size = 0;
do{
if(UINT_MAX / 10 - (c - '0') < size){
throw std::exception("オーバーフロー");
}
size = size * 10 + (c - '0');
c = std::fgetc(in);
if(c == EOF){
throw std::exception("fgetcがEOFを返した");
}
}while(std::isdigit(c));

checksum += size;

if(c != 0x0A){
throw std::exception("sar形式のファイルでない");
}

std::fpos_t fpos;
if(std::fgetpos(in, &fpos) != 0){
throw std::exception("fgetpos() Error");
}
fpos += size;
if(std::fsetpos(in, &fpos) != 0){
throw std::exception("fsetpos() Error");
}

c = std::fgetc(in);

if(c != 0x0A){
throw std::exception("sar形式のファイルでない");
}
}else{
if(c == 'C'){
char cs[8];
std::fread(cs, 1, 8, in);
if(std::memcmp(cs, "heckSum=", 8) == 0){
unsigned char f_cs = 0;
for(;;){
c = std::fgetc(in);
if(c == EOF){
throw std::exception("fgetsがEOFを返した");
}
if(!std::isdigit(c)){
break;
}
if(UCHAR_MAX / 10 - (c - '0') < f_cs){
throw std::exception("オーバーフロー");
}
f_cs = f_cs * 10 + (c - '0');
}
if(c != 0x0A){
throw std::exception("sar形式のファイルでない");
}

//最後に実行される

if(checksum == f_cs){
std::cout << "OK!" << std::endl;
}else{
std::cout << "NG!" << std::endl;
}

break;
}else{
throw std::exception("sar形式のファイルでない");
}
}else{
throw std::exception("sar形式のファイルでない");
}
}
}
}catch(std::exception &e){
std::cerr << e.what() << std::endl;
std::fclose(in);
return -2;
}
}

1339774さん:2009/01/29(木) 18:49:18 ID:fHt2HuPQ0
#define _CRT_SECURE_NO_WARNINGS

#include <iostream>
#include <algorithm>
#include <vector>

#include <windows.h>

int main(int argc, char **argv){
std::vector<int> vec1, vec2;

for(int i = 0; i < 100; ++i){
vec1.push_back(i);
}

std::copy(vec1.begin(), vec1.end(), std::back_insert_iterator<std::vector<int> >(vec2));
}

1340774さん:2009/01/29(木) 20:54:05 ID:fHt2HuPQ0
gist: 54503 - GitHub
http://gist.github.com/54503

1341774さん:2009/01/29(木) 21:00:59 ID:fHt2HuPQ0
[JS]わずか「12文字」でIEを判別するスクリプト | コリス
http://coliss.com/articles/build-websites/operation/javascript/js-detecting-ie-in-12-bytes.html
-----
IE='\v'=='v'
これは酷い・・・

1342774さん:2009/01/29(木) 21:03:40 ID:fHt2HuPQ0
The Spanner - Detecting browsers javascript hacks
http://www.thespanner.co.uk/2009/01/29/detecting-browsers-javascript-hacks/
-----
//Firefox detector 2/3 by DoctorDan
FF=/a/[-1]=='a'
//Firefox 3 by me:-
FF3=(function x(){})[-5]=='x'
//Firefox 2 by me:-
FF2=(function x(){})[-6]=='x'
//IE detector I posted previously
IE='\v'=='v'
//Safari detector by me
Saf=/a/.__proto__=='//'
//Chrome by me
Chr=/source/.test((/a/.toString+''))

B=(function x(){})[-5]=='x'?'FF3':(function x(){})[-6]=='x'?'FF2':'\v'=='v'?'IE':/a/.__proto__=='//'?'Saf':/s/.test(/a/.toString)?'Chr':'Op'

1343774さん:2009/01/29(木) 21:05:11 ID:fHt2HuPQ0
The Spanner - A tool for designers dealing with programmers dealing with designers…
http://www.thespanner.co.uk/

1344774さん:2009/01/30(金) 18:45:28 ID:fHt2HuPQ0
痛いニュース(ノ∀`):「Winny/Shareファイル流出監視サービス」 初期費用30万円、月額基本料金10万円
http://blog.livedoor.jp/dqnplus/archives/1212521.html
-----
P2Pをするだけで金になるなんて、俺でも出来るお。

1345774さん:2009/01/30(金) 18:52:16 ID:fHt2HuPQ0
とくまるひろしのSession Fixation攻撃入門 - ockeghem(徳丸浩)の日記
http://d.hatena.ne.jp/ockeghem/20090130/p1

1346774さん:2009/01/30(金) 19:01:11 ID:fHt2HuPQ0
iPhoneでC#アプリが審査に通るワケ − @IT
http://www.atmarkit.co.jp/news/200901/29/mono.html

1347774さん:2009/01/30(金) 19:10:54 ID:fHt2HuPQ0
Vistaとはドコが違うの!?:Windows 7 β版の注目ポイント“7” (1/3) - ITmedia +D PC USER
http://plusd.itmedia.co.jp/pcuser/articles/0901/30/news027.html
-----
期待。

1348774さん:2009/01/31(土) 21:16:37 ID:fHt2HuPQ0
gccでWindowsプログラミングなんてするものじゃないと思った。

1349774さん:2009/02/01(日) 11:24:52 ID:fHt2HuPQ0
http://code.google.com/intl/ja/apis/chart/
-----
QRコードが作れるって言う。

1350774さん:2009/02/01(日) 15:45:20 ID:fHt2HuPQ0
EternalWindows
http://eternalwindows.jp/index.html

1351774さん:2009/02/01(日) 15:57:35 ID:fHt2HuPQ0
GetSystemMenu 関数
http://msdn.microsoft.com/ja-jp/library/cc364748.aspx
-----
これを使えば、タスクバーとかを右クリックしたときに出てくるメニューが書き換えられるのか?

1352774さん:2009/02/01(日) 16:05:49 ID:fHt2HuPQ0
CPU使用率はこうすれば調べられる。
-----
#define _CRT_SECURE_NO_WARNINGS

#include <iostream>
#include <algorithm>
#include <functional>
#include <vector>
#include <string>
#include <numeric>

#include <windows.h>
#include <pdh.h>

#pragma comment(lib, "pdh.lib")

int main(int argc, char **argv){
HQUERY hQuery;
PdhOpenQuery(NULL, 0, &hQuery);

HCOUNTER hCounter;
PdhAddCounter(hQuery, "\\Process(sleipnir#0)\\% Processor Time", 0, &hCounter);

PdhCollectQueryData(hQuery);

Sleep(10000);

PdhCollectQueryData(hQuery);

PDH_FMT_COUNTERVALUE FmtValue;
PdhGetFormattedCounterValue(hCounter, PDH_FMT_DOUBLE, NULL, &FmtValue);

std::cout << FmtValue.doubleValue << std::endl;

PdhCloseQuery(hQuery);
}
-----
via http://eternalwindows.jp/windevelop/pdh/pdh00.html

1353みみず ◆rCEzuNnL0g:2009/02/01(日) 16:36:04 ID:fHt2HuPQ0
今更思ったのだが、普通に何もしていなければ、GUIのアプリケーションはCPU使用率は明らかに0%になるよな?
何故、あんなにCPUを使いまくっているグラフがとれるのかが今の僕には理解できない。
一秒間に二十回ぐらいCPUの測定しているんですかね?あほとしかおもえれませんわい。
暇なので、Sleipnirの使用率をはかるソフトを作った人の戯言でした。

1354774さん:2009/02/01(日) 16:36:49 ID:fHt2HuPQ0
#define _CRT_SECURE_NO_WARNINGS

#include <iostream>
#include <algorithm>
#include <functional>
#include <vector>
#include <string>
#include <numeric>

#include <cstdio>

#include <windows.h>
#include <pdh.h>

#pragma comment(lib, "pdh.lib")

int main(int argc, char **argv){
DWORD wt = 1000;
const char *ss = "\n";
if(argc >= 2){
ss = argv[1];
if(argc >= 3){
wt = std::atol(argv[2]);
}
}

HQUERY hQuery;
PdhOpenQuery(NULL, 0, &hQuery);

HCOUNTER hCounter;
PdhAddCounter(hQuery, "\\Process(sleipnir#0)\\% Processor Time", 0, &hCounter);
PdhCollectQueryData(hQuery);

std::ostream_iterator<double> oi(std::cout, ss);

for(;;){
Sleep(wt);
PdhCollectQueryData(hQuery);

PDH_FMT_COUNTERVALUE FmtValue;
PdhGetFormattedCounterValue(hCounter, PDH_FMT_DOUBLE, NULL, &FmtValue);

*oi = FmtValue.doubleValue;
}
}

1355みみず ◆rCEzuNnL0g:2009/02/01(日) 16:40:01 ID:fHt2HuPQ0
出来るだけ忘れなければ、ハンドルネームは付けることにしよう。
まあ、俺はクッキーなど残さない設定にしているので、大抵は忘れてしまうだろうが。

>>1354
全部のソースはこれだけ。
下手にGUIにするより、直接データを吐いた方が楽&処理がしやすいのでこういうことにしておく。
リダイレクトすれば簡単にファイルにも落とせるし。

だから、コマンドラインで、データ毎に挿入される文字列も設定できるようにしたし、データの取得間隔も設定できるようにしたので、ある程度扱いやすいと思う。

1356みみず ◆rCEzuNnL0g:2009/02/01(日) 16:41:38 ID:fHt2HuPQ0
exename , 5000 > out.cvs
とかすると良いかもね!
だけれどもexcelだと読み込めないけどね!
改行の文字コートがコマンドラインで渡せないのがいけないんだと思うよ!

1357みみず ◆rCEzuNnL0g:2009/02/01(日) 16:47:13 ID:fHt2HuPQ0
cvsじゃなくてcsvだったorz...
exename > out.csvでも良いね!

1358みみず ◆adhRKFl5jU:2009/02/01(日) 16:47:35 ID:fHt2HuPQ0
トリップを変えることにしよう。

1359みみず ◆adhRKFl5jU:2009/02/01(日) 16:55:45 ID:fHt2HuPQ0
五秒平均で取ってみると、Sleipnirの平均CPU使用率は10%ぐらいで、使うととたんにMax.70%までいく。
5秒間隔での平均で測定した結果。

1360みみず ◆adhRKFl5jU:2009/02/01(日) 16:56:24 ID:fHt2HuPQ0
===========================================================
Sleipnir Version: 2.8.4 クライアント情報
Unicode Edition (Number. 2804412)
-----------------------------------------------------------

■ マシン
OS: Windows XP Home Edition Service Pack 3 (build 2600) (Japanese)
IE(Trident): 7.0.5730.13
CPU: 1 of INTEL (Intel(R) Pentium(R) M processor 1.73GHz)
RAM: 502MB (154MB Free)
FlashPlayer: 10.0.12.36
FireWall: Trend Micro Personal Firewall

■ 有効なプラグイン
Active Gecko Browser: 1.0.0
Cyclone: 0.1.8
ExtendedMenu: 1.0.0
PersonalChannel: 0.1.1
Sagittarius Dock: 0.3.0
ScriptBlock: 0.5.1
ShowDock Action: 0.0.1
ShowPanel Action: 0.0.1
ShowToolBar Action: 0.0.1
SleipnirShake: 0.1.8
StyleEditor: 0.0.7
UserAction Extension: 1.0.1

■ 使用中のスキン
elegance: 1.0.0
===========================================================

1361みみず ◆adhRKFl5jU:2009/02/01(日) 17:00:49 ID:fHt2HuPQ0
Web側だけで、Lunascapeを吹き飛ばす方法が無いかなあ?とか思う。

1362みみず ◆adhRKFl5jU:2009/02/01(日) 17:09:59 ID:fHt2HuPQ0
============================================
RESULTS (means and 95% confidence intervals)
--------------------------------------------
Total: 5356.6ms +/- 2.5%
--------------------------------------------

3d: 777.2ms +/- 11.0%
cube: 274.4ms +/- 16.7%
morph: 239.0ms +/- 16.0%
raytrace: 263.8ms +/- 16.3%

access: 728.6ms +/- 7.2%
binary-trees: 109.4ms +/- 2.9%
fannkuch: 253.4ms +/- 12.3%
nbody: 282.8ms +/- 14.2%
nsieve: 83.0ms +/- 16.1%

bitops: 450.4ms +/- 1.2%
3bit-bits-in-byte: 71.4ms +/- 4.0%
bits-in-byte: 115.0ms +/- 2.0%
bitwise-and: 80.2ms +/- 3.2%
nsieve-bits: 183.8ms +/- 3.1%

controlflow: 56.8ms +/- 4.5%
recursive: 56.8ms +/- 4.5%

crypto: 393.2ms +/- 2.7%
aes: 148.2ms +/- 7.8%
md5: 122.2ms +/- 1.3%
sha1: 122.8ms +/- 1.3%

date: 497.0ms +/- 7.8%
format-tofte: 190.0ms +/- 1.0%
format-xparb: 307.0ms +/- 12.8%

math: 598.2ms +/- 11.7%
cordic: 201.2ms +/- 7.6%
partial-sums: 280.0ms +/- 23.8%
spectral-norm: 117.0ms +/- 1.5%

regexp: 545.2ms +/- 7.5%
dna: 545.2ms +/- 7.5%

string: 1310.0ms +/- 4.5%
base64: 172.6ms +/- 1.9%
fasta: 239.8ms +/- 7.2%
tagcloud: 387.4ms +/- 9.9%
unpack-code: 225.8ms +/- 23.3%
validate-input: 284.4ms +/- 14.9%

1363774さん:2009/02/01(日) 17:50:05 ID:fHt2HuPQ0
TridentではかるとやっぱりSleipnirでもLunascape5rcでもかわらねー。

1364みみず ◆adhRKFl5jU:2009/02/01(日) 18:55:04 ID:fHt2HuPQ0
Firefox高速化の切り札「FasterFox」でブラウザ魔改造 :教えて君.net
http://www.oshiete-kun.net/archives/2009/01/post_409.html
-----
はいはい。RFC無視無視。

1365みみず ◆adhRKFl5jU:2009/02/03(火) 18:18:43
某JavaScriptの演算子の紹介ページに!==と===が無いとはどういうことだ!

1366774さん:2009/02/03(火) 22:55:09
本格的なシューティングゲームを実現するタスクシステム:CodeZine
http://codezine.jp/article/detail/297?p=1
近代的タスクシステムの構築 - やねうらお−よっちゃんイカを食べながら年収1億円稼げる(かも知れない)仕事術
http://d.hatena.ne.jp/yaneurao/20090203#p1
(cache) 近代的タスクシステムの構築 - やねうらお−よっちゃんイカを食べながら年収1億円稼げる(かも知れない)仕事術
http://s01.megalodon.jp/2009-0203-2253-48/d.hatena.ne.jp/yaneurao/20090203

1367774さん:2009/02/03(火) 22:58:28
SleipnirAPIの
string IResult::FieldName(long column)
が空文字を返すという突っ込みを、2chに居る作者に入れようとしたが、何故か憚られたのでやめた。
だけれども、これが無いと一々特殊化した物を作らないといけないから面倒だなあ。

1368みみつ ◆adhRKFl5jU:2009/02/03(火) 23:00:04
JOI2006本選 一括@C++ - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20090203/1233658901

1369みみつ ◆adhRKFl5jU:2009/02/03(火) 23:14:52
アフォBlog C言語勉強したけどゲーム作れないぞコラって人向けに
http://afoafodayo.blog84.fc2.com/blog-entry-549.html

1370みみつ ◆adhRKFl5jU:2009/02/03(火) 23:28:47
liveイベント - 素人がプログラミングを勉強するブログ
http://d.hatena.ne.jp/javascripter/20090202/1233581353
-----
liveイベントは、後からノードが追加されても、そのノードにイベントを追加したかのような反応をするイベントらしい。

つまり、
$.live("li", "click", function(){
alert("click");
});
document.getElementsByTagName("body").item(0).appendChild(document.createElement("li"));
とかやっても、最後に追加した、liをクリックしてもアラートが出るようになるらし。

1371みみつ ◆adhRKFl5jU:2009/02/04(水) 19:33:06
C++TMPを使ってコンパイル時に多倍長フィボナッチ計算。 - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20090204/1233733232

1372みみず ◆adhRKFl5jU:2009/02/04(水) 19:34:45
Microsoft、Windows 7のエディションを発表 - ITmedia News
http://www.itmedia.co.jp/news/articles/0902/04/news024.html

1373みみず ◆adhRKFl5jU:2009/02/04(水) 19:36:15
http://anond.hatelabo.jp/20081025202001
http://anond.hatelabo.jp/20081030224457
-----
絶対コンパイル時に決定する必要性が無い。

1374みみず ◆adhRKFl5jU:2009/02/04(水) 19:56:21
絶対もしかしてジェネレータがあると思って検索したら、案の定あったので作るのはやめよう。

1375774さん:2009/02/05(木) 18:05:27
CSSでさくっと作れるグラフいろいろ - IDEA*IDEA 〜 百式管理人のライフハックブログ 〜
http://www.ideaxidea.com/archives/2009/02/css_graphs.html
NYTimes.comがAPIを提供開始!280万記事のデータベースで何を作る!? - IDEA*IDEA 〜 百式管理人のライフハックブログ 〜
http://www.ideaxidea.com/archives/2009/02/nytimescom_api.html

1376 ◆adhRKFl5jU:2009/02/06(金) 17:43:53
ああ、サーバーがあったら色々なことが出来そうなんだけれどもなあ。

1377 ◆adhRKFl5jU:2009/02/06(金) 17:52:03
素晴らしいjQueryのチュートリアル45選 | CREAMU
http://blog.creamu.com/mt/2009/02/jquery45.html


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板