[
板情報
|
カテゴリランキング
]
したらばTOP
■掲示板に戻る■
全部
1-100
最新50
|
メール
|
1-
101-
201-
301-
401-
501-
601-
701-
801-
901-
1001-
1101-
1201-
1301-
1401-
1501-
1601-
1701-
1801-
1901-
2001-
2101-
2201-
2301-
2401-
2501-
2601-
2701-
2801-
2901-
3001-
3101-
3201-
3301-
3401-
3501-
3601-
3701-
3801-
3901-
4001-
4101-
4201-
4301-
4401-
4501-
4601-
4701-
4801-
4901-
5001-
5101-
5201-
5301-
5401-
この機能を使うにはJavaScriptを有効にしてください
|
管理人の独り言(プログラミング関連)
1
:
みみず★
:2008/08/10(日) 23:28:15
あまりにもプログラミングの内容が増えすぎた。
よって隔離スレの中を更に隔離。
2232
:
774さん
:2010/03/24(水) 17:18:40
テクニック [編集]
ビットの立っている最下位ビットだけを残して残りを0にする方法 [編集]
2の補数では、ビットの立っている最下位ビットだけを残して残りのビットを0にするには、C言語で x & -x により、可能である。例えば、14 & -14 は 2 となる。
00001110 14
&) 11110010 -14
------------
00000010 2
2233
:
774さん
:2010/03/24(水) 17:19:02
>>2232
某所でよく見かけたが、こういうことだったのか・・・
2234
:
774さん
:2010/03/25(木) 00:05:39
Maxima
数式処理ソフト。
2235
:
774さん
:2010/03/26(金) 11:03:16
ナップサック問題 - Wikipedia
http://ja.wikipedia.org/wiki/%E3%83%8A%E3%83%83%E3%83%97%E3%82%B5%E3%83%83%E3%82%AF%E5%95%8F%E9%A1%8C
-----
CDとかで、出来るだけ少ない枚数でたくさんデータを分割しないで入れられるか、を計算する問題。
今まで一般的な問題の名前がわからなかった。
2236
:
774さん
:2010/03/26(金) 11:05:29
>>2235
違ったし。
-----
ビンパッキング問題 - Wikipedia
http://ja.wikipedia.org/wiki/%E3%83%93%E3%83%B3%E3%83%91%E3%83%83%E3%82%AD%E3%83%B3%E3%82%B0%E5%95%8F%E9%A1%8C
-----
こっちが正しい。
上はなんかよくわからん変数が増えてる。まあ、重要なファイルから入れたいのだろう。
2237
:
774さん
:2010/03/26(金) 17:01:04
nasmでCMOVccが通らないという。
で代替方法ないかなあと思ったらレジスタ二つ使えば条件ジャンプ使わなくても行けるね。
もっと少なく早くできるかもしれないが。
2238
:
774さん
:2010/03/26(金) 17:04:30
一個で出来るか。
2239
:
774さん
:2010/03/26(金) 17:08:24
いや、やっぱ2個。
2240
:
774さん
:2010/03/26(金) 17:23:44
;if(ebp < ebx) ebp = ebx;
xor eax, eax
mov ecx, ebx
cmp ebp, ebx
setnb al
sub eax, 1
and ecx, eax
not eax
and ebp, eax
add ebp, ecx
2241
:
774さん
:2010/03/26(金) 17:24:37
最近のCPUで意味あるのかなあ・・・
2242
:
774さん
:2010/03/27(土) 23:03:13
ガロア体面白いな。
実際に実装するならば、ビットシフトとxorでやるのかな。
2243
:
774さん
:2010/03/28(日) 12:44:36
extern "C"{
//Cのソース
extern "C++"{
//C++のソース
}
//Cのソース
}
みたいに出来るのかどうか。
仕様書当たるしかないのかなあ。
2244
:
774さん
:2010/03/28(日) 12:45:31
というか、
extern "C++"はあるのか。
2245
:
774さん
:2010/03/28(日) 13:07:10
>>2240
短くなった。
xor eax, eax
mov ecx, ebx
sub ecx, ebp
setb al
sub eax, 1
and ecx, eax
add ebp, ecx
2246
:
774さん
:2010/03/28(日) 17:04:22
1 バイト : XCHG EAX, EAX
2 バイト : MOV REG, REG
3 バイト : LEA REG, 0(REG) (8 ビット・ディスプレースメント )
4 バイト : NOP DWORD PTR [EAX + 0] (8 ビット・ディスプレースメント )
5 バイト : NOP DWORD PTR [EAX + EAX*1 + 0] (8 ビット・ディスプレースメント )
6 バイト : LEA REG, 0(REG) (32 ビット・ディスプレースメント )
7 バイト : NOP DWORD PTR [EAX + 0] (32 ビット・ディスプレースメント )
8 バイト : NOP DWORD PTR [EAX + EAX*1 + 0] (32 ビット・ディスプレースメント)
9 バイト : NOP WORD PTR [EAX + EAX*1 + 0] (32ビット・ディスプレースメント )
2247
:
774さん
:2010/03/28(日) 17:45:05
>>2246
以下、16進
nop == xchg eax, eax == 90
2248
:
774さん
:2010/03/28(日) 17:47:59
MOV EAX,EAX == 89C0
MOV EBX,EBX == 89DB
MOV ECX,ECX == 89C9
MOV EDX,EDX == 89D2
MOV ESI,ESI == 89F6
MOV EDI,EDI == 89FF
MOV ESP,ESP == 89E4
MOV EBP,EBP == 89ED
2249
:
774さん
:2010/03/28(日) 17:54:08
LEA EAX,[EAX] == 8D00
LEA EBX,[EBX] == 8D1B
LEA ECX,[ECX] == 8D09
LEA EDX,[EDX] == 8D12
LEA ESI,[ESI] == 8D36
LEA EDI,[EDI] == 8D3F
LEA ESP,[ESP] == 8D2424
LEA EBP,[EBP] == 8D6D00
2250
:
774さん
:2010/03/28(日) 17:58:42
XCHG EBX,EBX == 87DB
XCHG ECX,ECX == 87C9
XCHG EDX,EDX == 87D2
XCHG ESI,ESI == 87F6
XCHG EDI,EDI == 87FF
XCHG ESP,ESP == 87E4
XCHG EBP,EBP == 87ED
2251
:
774さん
:2010/03/28(日) 18:07:00
9bytes nop == 0x66, 0x0F, 0x1F, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00
2252
:
774さん
:2010/03/28(日) 18:07:58
8bytes nop == 0x0F, 0x1F, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00
2253
:
774さん
:2010/04/19(月) 23:48:51
秒間120万つぶやきを処理、Twitterシステムの“今” − @IT
http://www.atmarkit.co.jp/news/201004/19/twitter.html
2254
:
774さん
:2010/04/23(金) 20:01:06
覚えて良かったCSSテクニック ≪ zaru blog
http://zaru.tofu-kun.org/2010/04/22/%E8%A6%9A%E3%81%88%E3%81%A6%E8%89%AF%E3%81%8B%E3%81%A3%E3%81%9Fcss%E3%83%86%E3%82%AF%E3%83%8B%E3%83%83%E3%82%AF/
2255
:
774さん
:2010/04/24(土) 23:55:02
std::function<std::function<int()>(int)> func = [](int a){return (std::function<int()>)[a](){return a;};};
auto f100 = func(100);
auto f101 = func(101);
-----
C++0xきもい><
2256
:
774さん
:2010/04/25(日) 00:05:09
JavaScriptみたいにかけたらいいのに・・・
-----
function func(a){
return function(){
return a;
}
}
2257
:
774さん
:2010/04/26(月) 22:52:04
[CSS]ブラウザのサイズに合わせてスタイルシートを変更する方法 | コリス
http://coliss.com/articles/build-websites/operation/css/different-stylesheets-for-differently-sized-browser-windows.html
2258
:
774さん
:2010/04/28(水) 19:35:50
COMを直接弄って、
var div = document.createElement("div");
div.innerText = "Fuck You!";
document.getElementsByTagName("body").item(0).appendChild(div);
を書いたら、50行以上になった。
2259
:
774さん
:2010/04/28(水) 21:39:26
一応IEではJavaScriptもVBも(場合に拠ってはPerl等も)同列に扱える、つまりObject渡せる筈なのだが、そのObjectをC++で作りたいのだがどうすればいいのだろうか。
2260
:
774さん
:2010/04/28(水) 21:41:12
C++で作ったアプリケーションとJScriptの連携(1/4):CodeZine
http://codezine.jp/article/detail/1827
-----
これか!
2261
:
774さん
:2010/04/29(木) 11:10:39
static void TestCodes(){
SPX_ISleipnir *ps = g_ipSleipnir;
SPX_LONG nActiveTab;
if(SPX_ERR_CODE_SUCCESS == ps->SendMessage(SPX_SM_GETACTIVEPAGE, (DWORD)&nActiveTab, 0)){
COM<IWebBrowser2> iwb;
if(SPX_ERR_CODE_SUCCESS == ps->SendMessage(SPX_SM_GETBROWSERINTERFACE, (DWORD)nActiveTab, (DWORD)&iwb)){
HRESULT hr;
COM<IDispatch> idis;
hr = iwb->get_Document(&idis);
if(SUCCEEDED(hr)){
COM<IHTMLDocument2> ihd2;
hr = idis->QueryInterface(IID_IHTMLDocument2, (void**)&ihd2);
if(SUCCEEDED(hr)){
COM<IHTMLDocument3> ihd3;
hr = idis->QueryInterface(IID_IHTMLDocument3, (void**)&ihd3);
if(SUCCEEDED(hr)){
BSTR strDiv = SysAllocString(L"div");
if(strDiv != nullptr){
COM<IHTMLElement> iheDiv;
hr = ihd2->createElement(strDiv, &iheDiv);
SysFreeString(strDiv);
if(SUCCEEDED(hr)){
BSTR strText = SysAllocString(L"Fuck You!");
if(strText != nullptr){
hr = iheDiv->put_innerText(strText);
SysFreeString(strText);
if(SUCCEEDED(hr)){
BSTR strBody = SysAllocString(L"body");
if(strBody != nullptr){
COM<IHTMLElementCollection> ihec;
hr = ihd3->getElementsByTagName(strBody, &ihec);
if(SUCCEEDED(hr)){
VARIANT name, index;
VariantInit(&name);
VariantInit(&index);
V_VT(&name) = VT_I4;
V_I4(&name) = 0;
V_VT(&index) = VT_I4;
V_I4(&index) = 0;
COM<IDispatch> idsBody;
hr = ihec->item(name, index, &idsBody);
VariantClear(&name);
VariantClear(&index);
if(SUCCEEDED(hr)){
COM<IHTMLDOMNode> ihdnBody;
hr = idsBody->QueryInterface(IID_IHTMLDOMNode, (void**)&ihdnBody);
if(SUCCEEDED(hr)){
COM<IHTMLDOMNode> ihdnDiv;
hr = iheDiv->QueryInterface(IID_IHTMLDOMNode, (void**)&ihdnDiv);
if(SUCCEEDED(hr)){
COM<IHTMLDOMNode> ihdnNew;
hr = ihdnBody->appendChild(ihdnDiv, &ihdnNew);
if(SUCCEEDED(hr)){
COM<IHTMLElement> iheNew;
hr = ihdnNew->QueryInterface(IID_IHTMLElement, (void**)&iheNew);
if(SUCCEEDED(hr)){
BSTR strText = SysAllocString(L"やらないか?");
if(strText != nullptr){
iheNew->put_innerText(strText);
SysFreeString(strText);
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
2262
:
774さん
:2010/04/29(木) 15:29:53
プロとしてプログラミングをするんだったら、ちゃんと仕様に従うべきだと思うね。
某サイトで + が入っていたアドレスを登録しようとしたら、無効なアドレスですとかほざきやがった。は?
同じサイトで . が連続で含まれているアドレスを登録しようとしたら問題なく登録できた。は?
他のサイトで . が連続で含まれているアドレスを登録しようとしたら問題なく登録できた。
で、登録しました!というメールを見たら、TOのローカル部が "" で囲まれていた。ほー。
2263
:
774さん
:2010/04/29(木) 15:34:52
本の虫: C++0xでは、識別子にUCSが使えるのではなかろうか
http://cpplover.blogspot.com/2010/04/c0xucs.html
-----
VisualStudio 2010でちゃんと使えた。すげー。
頑張れば日本語だけでC++のソース書けるようになるんじゃね?
2264
:
774さん
:2010/04/29(木) 15:45:29
#define もし if
#define 繰り返し for
#define 主 main
#define 返却 return
#define の場所 *
typedef int 整数;
typedef char 文字;
整数 主(整数 引数の数, 文字 の場所 の場所 引数){
返却 0;
}
かっこ悪すぎワロタwww
2265
:
774さん
:2010/04/29(木) 15:51:17
#include <iostream>
#define もし if
#define 繰り返し for
#define 主 main
#define 返却 return
#define の場所 *
typedef int 整数;
typedef char 文字;
typedef 文字 の場所 文字列;
整数 主(整数 引数の数, 文字列 の場所 引数){
繰り返し(整数 あ = 0; あ < 100; ++あ){
std::cout << あ << std::endl;
}
}
-----
英語のほうがいいじょ・・・
2266
:
774さん
:2010/04/29(木) 16:43:14
連載:これでできる! クロスブラウザJavaScript入門|gihyo.jp … 技術評論社
http://gihyo.jp/dev/serial/01/crossbrowser-javascript/
2267
:
774さん
:2010/04/29(木) 17:18:46
Photoshop's CAF (content-aware fill) - unbelievable? Not quite. - the real Uqbar
http://o3.tumblr.com/post/470608946/photoshops-caf-content-aware-fill-unbelievable
-----
おー、怖い怖い
via
http://cpplover.blogspot.com/2010/03/photoshop.html
2268
:
774さん
:2010/04/29(木) 23:35:49
HTML(Script)側へのオブジェクトの公開 その3- IE/WebBrowser
http://www.ailight.jp/blog/sha256/archive/2007/06/11/13896.aspx
2269
:
774さん
:2010/04/30(金) 01:22:30
SPX_ISleipnir *ps = g_ipSleipnir;
HRESULT hr = E_FAIL;
SPX_LONG nActiveTab;
if(SPX_ERR_CODE_SUCCESS == ps->SendMessage(SPX_SM_GETACTIVEPAGE, (DWORD)&nActiveTab, 0)){
COM<IWebBrowser2> iwb;
if(SPX_ERR_CODE_SUCCESS == ps->SendMessage(SPX_SM_GETBROWSERINTERFACE, (DWORD)nActiveTab, (DWORD)&iwb)){
COM<IDispatch> idis;
hr = iwb->get_Document(&idis);
if(SUCCEEDED(hr)){
COM<IHTMLDocument> ihd;
hr = idis->QueryInterface(IID_IHTMLDocument, (void**)&ihd);
if(SUCCEEDED(hr)){
COM<IDispatch> idis;
hr = ihd->get_Script(&idis);
if(SUCCEEDED(hr)){
COM<IDispatchEx> idisex;
hr = ihd->QueryInterface(IID_IDispatchEx, (void**)&idisex);
if(SUCCEEDED(hr)){
for(DISPID disid = DISPID_STARTENUM; idisex->GetNextDispID(fdexEnumAll, disid, &disid) == S_OK; ){
BSTR bs;
hr = idisex->GetMemberName(disid, &bs);
if(hr == S_OK){
MessageBoxW(nullptr, bs, L"TEST", MB_OK);
SysFreeString(bs);
}
}
}
}
}
}
}
}
return hr;
2270
:
774さん
:2010/04/30(金) 20:06:06
ふと、GoogleChromeのブックマークとSleipinrのブックマークを同期させてみたくなった。
2271
:
774さん
:2010/04/30(金) 21:20:57
今の俺には544KBのソースを解読する気力はない。
2272
:
774さん
:2010/05/01(土) 00:52:58
Firefox上でプラグインを作るときに、same originを破って通信するには
Requestオブジェクトでも利用するのかな?
2273
:
774さん
:2010/05/03(月) 14:49:40
アレ用の何か
http://hp.vector.co.jp/authors/VA050396/index.html
2274
:
774さん
:2010/05/05(水) 18:53:19
高木浩光@自宅の日記 - 共用SSLサーバの危険性が理解されていない
http://takagi-hiromitsu.jp/diary/20100501.html
#p01
2275
:
774さん
:2010/05/08(土) 09:19:21
やりたいこと。
1.PEファイルを手動で読み込む
2.PEファイルにPEファイルの挿入
3.逆アセの開発
2276
:
774さん
:2010/05/08(土) 20:38:37
OAuthプロトコルの中身をざっくり解説してみるよ - ゆろよろ日記
http://d.hatena.ne.jp/yuroyoro/20100506/1273137673
2277
:
774さん
:2010/05/08(土) 20:42:54
伝送速度1Gbps以上、NTTが超高速無線LANの伝送実験に成功 - GIGAZINE
http://gigazine.net/index.php?/news/comments/20100508_ntt_1gbps_wlan/
2278
:
774さん
:2010/05/08(土) 22:15:41
VC++ 2010の話。
-----
int main(int argc, char **argv){
for(unsigned int i = 0; i <= 300; ++i){
}
}
---
01111000 xor eax,eax
01111002 ret
-----
妥当な最適化。
-----
int main(int argc, char **argv){
for(unsigned int i = 0; i <= 300; ++i){
if(i & 2){
if(!(i & 2)){
std::cout << i << std::endl;
}
}
}
}
---
01031000 xor eax,eax
01031002 inc eax
01031003 cmp eax,12Ch
01031008 jbe main+2 (1031002h)
0103100A xor eax,eax
0103100C ret
-----
ぇ・・・
こんなソースを書く人が悪いですが。
2279
:
774さん
:2010/05/08(土) 22:25:53
これは、定数だけれども、最適化しないのか。
-----
int main(int argc, char **argv){
unsigned int sum = 0;
for(unsigned int i = 0; i < 300; ++i){
for(unsigned int j = 0; j < 300; ++j){
sum += i + j;
}
}
std::cout << sum << std::endl;
}
2280
:
774さん
:2010/05/08(土) 22:51:26
switch使うと、大体定数時間で飛ぶようにしてくれるなあ。
jmp dword ptr [eax * 4 + offset]
2281
:
774さん
:2010/05/09(日) 21:43:12
CPU Disasm
Address Hex dump Command Comments
488956AA |. FF15 50108848 |CALL DWORD PTR DS:[<&FenrirLib_fx.?FfxGetCl
488956B0 |. 8B10 |MOV EDX,DWORD PTR DS:[EAX]
488956B2 |. 68 EC748A48 |PUSH OFFSET SagittariusDock_fx.488A74EC
488956B7 |. 68 802B8848 |PUSH SagittariusDock_fx.48882B80
488956BC |. 50 |PUSH EAX
488956BD |. FF52 18 |CALL DWORD PTR DS:[EDX+18]
2282
:
774さん
:2010/05/09(日) 21:43:59
CPU Dump
Address Hex dump ASCII
48882B80 86 6B 2F 34|CD B0 33 40|A2 09 3A 39|83 F0 3B 66| �k/4Ͱ3@�.:9��;f
2283
:
774さん
:2010/05/11(火) 02:08:58
Google、「ハッキング学習用Webアプリ」を公開 - スラッシュドット・ジャパン
http://slashdot.jp/security/article.pl?sid=10/05/10/116206
WEBプログラマー必見!WEB脆弱性基礎知識最速マスター - 燈明日記
http://d.hatena.ne.jp/chaichanPaPa/20100509/1273376018
2284
:
774さん
:2010/05/12(水) 21:28:38
VC++2010がenum classを実装してなくて残念な感じ。
2285
:
774さん
:2010/05/12(水) 22:05:30
私が厳選して愛用するGoogleChromeエクステンション12個+消した奴36個*ホームページを作る人のネタ帳
http://e0166.blog89.fc2.com/blog-entry-773.html
2286
:
774さん
:2010/05/14(金) 22:21:46
>>2278
下のソース間違ってるね。
std::cout云々の行はナシで。
2287
:
774さん
:2010/05/17(月) 08:42:34
取り敢えず、基本的な命令は全部処理できる逆アセ(これはMOV命令だとか分かるだけ)は出来た。
これだけ出来れば、バイナリを直接書き換えるAPIフックも出来るはずである。というかそのためだけに作った。
2288
:
774さん
:2010/05/17(月) 08:44:55
IAT書き換えによるAPIフックでは、書き換える前に取得されたアドレスは書き換えれないので駄目なのである。
VC++では何度もインポートされた関数を呼び出すときに、関数のアドレスをレジスタに読み込んで最適化するので、それでもフックをするようにするにはこうするしかないのである。
2289
:
774さん
:2010/05/17(月) 16:36:38
多分。
2290
:
774さん
:2010/05/17(月) 22:04:46
やりたいこと。
1.PEファイルを手動で読み込む 大体済 -> 専用のC++クラスでも作る?
2.PEファイルにPEファイルの挿入 未着手
3.逆アセの開発 大体済 -> 完全に逆アセして、文字列に落とせるようにする?
4.WAVを読み込んで、フーリエ級数展開
2291
:
774さん
:2010/05/18(火) 22:42:27
やりたいこと。
1.PEファイルを手動で読み込む 大体済 -> 専用のC++クラスでも作る?
2.PEファイルにPEファイルの挿入 未着手
3.逆アセの開発 大体済 -> 完全に逆アセして、文字列に落とせるようにする?
4.WAVを読み込んで、フーリエ級数展開
5.ゲーム(?)
2292
:
774さん
:2010/05/18(火) 22:43:59
取り敢えず、面倒だったからやっていなかったMACアドレスの登録を行った。
行わないと大学側の無線LANが利用できないと言う。
WEPとかやばくね?
2293
:
774さん
:2010/05/19(水) 20:59:40
CSSセレクタの高速化の話し - Webtech Walker
http://webtech-walker.com/archive/2010/05/18162034.html
-----
右から左に解釈されるか。
2294
:
774さん
:2010/05/20(木) 19:27:21
やりたいこと。
1.PEファイルを手動で読み込む 大体済 -> 専用のC++クラスでも作る?
2.PEファイルにPEファイルの挿入 未着手
3.逆アセの開発 大体済 -> 完全に逆アセして、文字列に落とせるようにする?
4.WAVを読み込んで、フーリエ級数展開
5.スクリプト言語(?)
6.ゲーム作る(?)作曲とかも暗に含んでいたりする
7.ひぐらしやる。若しくは適当にどっかにいれれるようにする。
2295
:
774さん
:2010/05/20(木) 19:34:48
Googleが出してきたFont APIのすごさを体感したいなら…『Font Previewer』 - IDEA*IDEA 〜 百式管理人のライフハックブログ
http://www.ideaxidea.com/archives/2010/05/font_previewer.html
2296
:
774さん
:2010/05/20(木) 19:35:26
Google Font API - Google Code
http://code.google.com/intl/ja/apis/webfonts/
2297
:
774さん
:2010/05/20(木) 20:19:23
やりたいこと。
1.PEファイルを手動で読み込む 大体済 -> 専用のC++クラスでも作る?
2.PEファイルにPEファイルの挿入 未着手
3.逆アセの開発 済 -> もう満足。MessageBoxAのフック余裕でした。今の所必要なさそうなのでこれで完。
4.WAVを読み込んで、フーリエ級数展開
5.スクリプト言語(?)
6.ゲーム作る(?)作曲とかも暗に含んでいたりする
7.ひぐらしやる。若しくは適当にどっかにいれれるようにする。
2298
:
774さん
:2010/05/20(木) 20:25:12
ttp://mimizu.karou.jp/lab/DisAsm.rar
現状では使い物にならないことは重々理解している。
でも、ここまで作ってしまえば改造は楽である。
SleipnirのPanelになっているのは、適当に(ry
2299
:
774さん
:2010/05/20(木) 23:18:33
今やってること。
1.某ソフトの解析。意味がない。だけれども面白そうだからやってる。
2300
:
774さん
:2010/05/23(日) 03:17:34
乗りで、行列の逆行列やら、余因子行列やら求めるライブラリを二時間で作った。
かかり杉ワロタ。
2301
:
774さん
:2010/05/26(水) 23:54:22
いっぱい書いたソースが一発でコンパイルを通るのは怖いw
2302
:
774さん
:2010/05/28(金) 22:51:03
spx解放早すぎ。
2303
:
774さん
:2010/05/29(土) 22:07:24
別のプロセスにコードを割り込ませる3つの方法 - japan.internet.com デベロッパー
http://japan.internet.com/developer/20050830/26.html
2304
:
774さん
:2010/05/29(土) 23:12:57
VC++に_forceinlineとか言う奴が追加されているwwwww
2305
:
774さん
:2010/05/29(土) 23:15:14
__forceinlineだった
2306
:
774さん
:2010/05/30(日) 00:33:45
__forceinlineが前から欲しいと思ってました。
templateと一緒に用いれば最強の武器になる。
2307
:
774さん
:2010/05/31(月) 15:41:12
libdisasm: x86 disassembler library
http://bastard.sourceforge.net/libdisasm.html
-----
ライブラリあったんだなあ。
まあ、作るのも面白かったからいいですが。
2308
:
774さん
:2010/06/01(火) 08:27:59
Firefox に outerHTML を実装する - IT戦記
http://d.hatena.ne.jp/amachang/20100531/1275270877
-----
設定できてなんぼじゃないの?
2309
:
774さん
:2010/06/02(水) 15:21:08
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
import java.awt.Container;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
public class Test extends JFrame{
static Test test;
static public void main(String[] arg){
test = new Test("ばか");
test.setVisible(true);
}
Test(String title){
setTitle(title);
setBounds(100, 100, 300, 250);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel p = new JPanel();
JButton button1 = new JButton("OK");
button1.setForeground(Color.GREEN);
button1.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event){
JLabel msg = new JLabel("TEST");
JOptionPane.showMessageDialog(test, msg);
}
}
);
JButton button2 = new JButton("Cancel");
JButton button3 = new JButton("Retry");
p.add(button1);
p.add(button2);
p.add(button3);
Container contentPane = getContentPane();
contentPane.add(p, BorderLayout.CENTER);
}
}
2310
:
774さん
:2010/06/02(水) 15:26:19
JavaのSwingを使って、適当にウィンドウを出してみたのだが、Windowsプログラミングに比べて非常に簡単にウィンドウが出せて本当に楽でいいと思います。
これでマルチプラットフォーるなんだから、本当にJavaってすごいなあと今更ながら実感している次第であります。
これでもっとスピートが出るようだったらC++から写ってもいいかなと思いますが、しかし、やはり解析に対して弱々しいのはもうちょっとなんとかできないものか。
まあ、普通にコード難読化ツールを使えばいいような気もしますが、そこまでやるとさらに動作が遅くなるという。
まあ、そういうワケで、逆コンパイラがあまり存在しないネイティブだからこそ、いいということもあるわけです。
しかし、一応Javaも中間コードに落とすわけだから、そのVM内で自己書換え型プログラムも可能なのかなあ。しらないけれども。
2311
:
774さん
:2010/06/02(水) 16:01:47
初級C言語Q&A[index]
http://www.st.rim.or.jp/~phinloda/cqa/cqaindex.html
2312
:
774さん
:2010/06/02(水) 16:07:34
noocyte のプログラミング研究室
http://www5d.biglobe.ne.jp/~noocyte/
2313
:
774さん
:2010/06/02(水) 20:42:47
400万行のコードを15分で見える化! プログラム解析ツール『Understand』で開発効率アップ(2/2):CodeZine
http://codezine.jp/article/detail/5204?p=2
「プログラミングの魔導書」の情報公開 - Faith and Brave - C++で遊ぼう
http://d.hatena.ne.jp/faith_and_brave/20100601/1275386397
2314
:
774さん
:2010/06/02(水) 20:44:30
>>2313
後者は出たら買いたいと思います。
2315
:
qnighy
:2010/06/02(水) 21:03:23
>>2310
Qtのことも忘れないであげてください
2316
:
774さん
:2010/06/02(水) 21:41:51
>>2315
へー。こんなものもあるんですか。
忘れるも何も、初めから頭に入ってないと言う・・・
2317
:
774さん
:2010/06/03(木) 07:05:57
あれ、俺は何を言っているんだ。
初めから頭に入っていないから、忘れないで(ryと言われているんじゃないか。
2318
:
774さん
:2010/06/03(木) 09:07:14
コンパイラの最適化の話。
-----
static wchar_t *GetFfxAllocString(const wchar_t *str){
const int len = std::wcslen(str);
const unsigned int size = (len + 1) * sizeof(wchar_t);
wchar_t *ret = (wchar_t*)FfxAlloc(size);
if(ret){
std::wcscpy(ret, str);
}
return ret;
}
-----
こんなソースを書いた。ここで“FfxAlloc”は指定したバイトのメモリを確保してくる関数である。
で、この関数は現状文字列リテラルしか与えてないので、関数呼び出し部ではインライン展開されて、wcslenは呼び出されすらしない(すべて即値になる。)。
まあ、その最適化は良いんだ。問題は、wcscpyである。何故VC++はこれを即値で展開してくれないかなあ。
つまりNASM風に書くならば、
-----
mov eax, dword [ret]
mov dword [eax], 0x42004100
mov dword [eax+4], 0x00004300
-----
みたいにさ(この場合はL"abc"。多分。)。
で、これが出来ないから無駄に条件分岐が多くなったり、call命令が多くなって遅くなる。まあ、現状のCPUならば気にならないだろうが・・・
2319
:
774さん
:2010/06/04(金) 00:58:36
仕事をしないからSleepなのさ
http://blogs.wankuma.com/episteme/archive/2010/05/08/188833.aspx
-----
俺の解釈では、そんなにSleepの精度は宜しくない。
自分のタイムスライスをプレゼントするだけ。
正確に計りたいならば、普通に無限ループさせておけばいいと思う。
2320
:
774さん
:2010/06/05(土) 00:11:29
どうでもいいが、コードサイズ優先でコンパイルするのか。
mov eax, 3
と
push 3
pop eax
だったら、絶対後者のほうが遅い気がするのだが、気のせいなのだろうか。
2321
:
774さん
:2010/06/05(土) 00:12:03
>>2320
“何故”が抜けた
2322
:
774さん
:2010/06/10(木) 00:58:48
俺のやる気が出たらだが、サーバー借りて何かやらかしたい。
2323
:
774さん
:2010/06/10(木) 03:28:23
【HTML5】新規でサイトを作るのに使えそうなの一式。Ver 1|CSS HappyLife
http://css-happylife.com/log/css-template/000766.shtml
2324
:
774さん
:2010/06/10(木) 03:28:59
より早くcssやhtmlのコーディングが行えそうな情報いろいろ - かちびと.net
-----
NGワードでURIが貼れない
2325
:
774さん
:2010/06/10(木) 04:55:07
なんだかんだで、完徹してしまった。
2326
:
774さん
:2010/06/10(木) 20:11:55
取り敢えず、phpを動かせる環境を用意しなければ。
2327
:
774さん
:2010/06/10(木) 20:26:04
やりたいことは多いのに、何も進んでいない。
そろそろちゃんとフーリエ変換について勉強するか。
2328
:
774さん
:2010/06/10(木) 20:28:04
NANDは単体でどんな論理回路でも作れるんだったけな。
2329
:
774さん
:2010/06/17(木) 22:08:45
jQueryプラグインを探す際にだいたい見て回る巡回サイトまとめ - かちびと.net
2330
:
774さん
:2010/06/18(金) 22:45:01
>>2329
は、URLが貼れなかった。
2331
:
774さん
:2010/06/18(金) 23:00:59
取り敢えず、SleipnirのDockに自分の作ったウィンドウは表示できるようになった。
新着レスの表示
名前:
E-mail
(省略可)
:
※書き込む際の注意事項は
こちら
※画像アップローダーは
こちら
(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板