2011年10月1期プログラムライブラリマニア【パッケージ化】 TOP カテ一覧 スレ一覧 削除依頼
・ 次のスレ
OpenGLゲーム作成初心者スレ
ステッピングモータの制御について
【sockets】HTML5を使って作る高度なウェブアプリ【3D】
Go part4


ライブラリマニア【パッケージ化】


1 :10/03/06 〜 最終レス :11/07/16
思いついたらすぐパッケージ化、ライブラリ化する人
他人の作ったライブラリやモジュールを集める人
そんな人たちの交差点
リクもおk(礼儀は正しく)
因みに>>1はC++では前者です

2 :
このスレッドは天才pンジー「アイちゃん」が
言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
                  京都大学霊長類研究所

3 :
Linux板でやれ

4 :
じゃあ早速
動画や音楽ファイルのアーティスト情報をget_file_info(filename)見たいな感じで表示するコードください

5 :
ネタ振っといて例を出さないとかやる気ないな

6 :
だれかが代わりに探してあげるスレじゃまいか?

7 :
言われてもそんなすぐ出来るわけないでしょう
マターリやりましょうよ

8 :
試しに晒してみる
自作アプリで使ってるクリップボード関数
BOOL ClipCopy(void* Source, DWORD dwSize, DWORD CFType)
{
BOOL Result;
HGLOBAL HG;
LPVOID lpV;
if(Source == NULL)
return FALSE;
if(dwSize == 0)
return FALSE;
HG = ::GlobalAlloc(GMEM_MOVEABLE | GMEM_ZEROINIT, dwSize);
lpV = ::GlobalLock(HG);
::CopyMemory(lpV, Source, dwSize);
::GlobalUnlock(HG);
if(::OpenClipboard(NULL))
{
::EmptyClipboard();
::SetClipboardData(CFType, HG);
::CloseClipboard();
Result = TRUE;
}
else
{
::GlobalFree(HG);
Result = FALSE;
}
return Result;
}

9 :
十年くらい前はCでそんな感じのよく作ってたなぁ
.NET使うようになってからどうでもよくなったがw

10 :
Windowをクラス化しようとしてコールバックにメンバ関数渡せない
→static関数を渡せ
→インスタンスを渡したい
 →SetWindowLongPtr使え
 →サンク使え

11 :
>>4
FFmpegあたりが参考になるかも

12 :
>SetWindowLongPtr使え
thisポインタが必要だから無理
MFCでは全てのメッセージはグローバルのコールバックに届いて
クラスとハンドルの対応表を参照してメンバ関数を呼び出してる
MFC方式でいいんじゃない

13 :
それは誰かが、メンバ関数の表のようなものを
つくらないと若しくはじぶんで自作って可能なのかそれは…
用途によるかd

14 :
春休みなんでC言語でさくっとソフト作りたい
何かボタンとか付けるだけで実用的になるライブラリーみたいな物知らない?

15 :
.NETFramework

16 :
C++/CLI

17 :
>>12
SetWindowLongPtrでthisを突っ込むんだよ

18 :
SetWindowLongPtrって64bitOS対応なのか、ずっとSetWindowLong使ってたわw

19 :
てか、SetWindowLongPtrでthis突っ込む方式の何が駄目なのだろうかage

20 :
>>17
DWLP_USERに入れればいいのか?
GetWindowLongPtr( hWnd, DWLP_USER )->foo( uMsg, wParam, lParam )
みたいな感じ?
でも結局グローバルなコールバック関数が必要なような

21 :
こんな感じで
LRESULT Window::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
// メンバに自由にアクセス
}
static LRESULT CALLBACK Window::InnerWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
Window* win = (Window*)::GetWindowLong(hWnd, GWL_USERDATA); // SetWindowLongバージョンで許して
if (win) {
ret = win->WndProc(hWnd, uMsg, wParam, lParam);
} else {
ret = ::DefWindowProc(hWnd, uMsg, wParam, lParam);
}
}

22 :
あ〜、もう
LRESULT Window::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
  // メンバに自由にアクセス
}
static LRESULT CALLBACK Window::InnerWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
  Window* win = (Window*)::GetWindowLong(hWnd, GWL_USERDATA);
  if (win) {
    ret = win->WndProc(hWnd, uMsg, wParam, lParam);
  } else {
    ret = ::DefWindowProc(hWnd, uMsg, wParam, lParam);
  }
}

23 :
>>22
結局staticだしMFCでいいや

24 :
WTLのソースでもよめよ

25 :
>サンク使え

26 :
サンク方式→アセンブラで書くので移植の問題を考慮する必要がある
MFC方式→クラスやインスタンスが増えた場合、テーブルから引き出す速度が遅くなる。

27 :
>>22
クソをソースにしたようなもんだな

28 :
他にいいやり方があるならどうぞ

29 :
ライブラリがGWL_USERDATA使ってると
そのライブラリ使うユーザーが同じことできないから困る

30 :
CreateWindow(Ex)の最後の引数が代替できる

31 :
10年前にタイムスリップしたようなスレだな

32 :
ドットネットの今こそ需要があるんだろうよ。

33 :
VisualC++でゲーム用スタティックライブラリ作ってるんですけど
1ライブラリにつき、全てのヘッダをincludeしたヘッダをひとつ用意して
これを使う設計なんですけど、これってコンパイル速度にペナルティあったりしますか?
使わないヘッダまでincludeされちゃうんで無駄があるかなぁと思ってるんですが

34 :
>28-30
RegisterClassExでウィンドウクラスを作ればいいだけじゃん
名前の衝突も考えないといけなくなるけど

35 :
ここにいるやつらでライブラリ寄せ集めて新.NETなんてどう?
まぁこんな低能じゃ無理か

36 :
FCLの事言ってるのかCLRを自作の事いってんのかわからんが、
たぶん何もわかってなくて言ってるんだろうな

37 :
>>33
勿論、コンパイラはincludeされたファイルは全部解析するからその分は遅くなる。
だが恐らくは気になるほど遅くはならないだろう。

38 :
#pragma once

39 :
ところで個人が作成したもので一番普及してるコードってなんだろう?
libjpegとか?

40 :
zlibとか?

41 :
libcだろ
最初はRMSと数人で書いたんでしょ

42 :
関係ないかもしれんけどgoogle日本語入力を外部アプリから利用できないかなと思った
ゲームとかのグラフィカルなインターフェイスでスマートに漢字を入力みたいな

43 :
MFCのCHtmlViewにFirefoxとIEのエンジンを切り替えて使えるラッパーを探していますが誰か知りませんか?

44 :
.lib化すると、他に必要だった.dllとかが要らなくなるの?

45 :
MFCを使うと実行モジュールのサイズが100倍に!?

46 :
嘘つくなよ
フリーソフト作るときmfc入ってないやつのためにスタティックリンクすることあるけどせいぜい3倍程度だし

47 :
http://www.dotup.org/uploda/www.dotup.org903461.gif

48 :
ARM版WinCE用のlibjpegのdllってどこにありますか?

49 :
OpenJaneのレス表示部分のような機能のあるパッケージキボンヌ

50 :
>>48
それくらい自分で組めよ
>>49
専用のパッケージなんか探さなくても.net使えばhtmlの表示とかが楽
そのほうが応用が利くし
あとは適当に本文から>>%uでも検索すればよろし

51 :
mpegファイルを作成するライブラリはありまつか?

52 :
スレ見つけた記念。Winのクリップボード消去関数。
あなたにセキュリティ〜!!
bool EraseClipBoard(HWND hWnd,bool IsShowError = true){
    if(OpenClipboard(hWnd) == FALSE){
        if(IsShowError == true) MessageBox(NULL,TEXT("クリップボードを開けません!!"),TEXT("Error!!"),MB_OK|MB_ICONWARNING);
        return false;
    }
    if(EmptyClipboard() == FALSE){
        if(IsShowError == true) MessageBox(NULL,TEXT("クリップボードの消去に失敗しました!!"),TEXT("Error!!"),MB_OK|MB_ICONWARNING);
        CloseClipboard();
        return false;
    }
    CloseClipboard();
    return true;
}

53 :
あとはこことか
http://studiokingyo.fc2web.com/

54 :
宣伝乙。最近大売出しだな。

55 :
>>53
あんまり何回もしつこく貼るとここに通報するよ
ものすごい勢いで広告・宣伝を報告するスレ 195
http://qb5.2ch.net/test/read.cgi/sec2chd/1289529408/

56 :
宣伝、というか本人なのか?
もうこいつまともにプログラミングやってないんだろ?
結構前から時代錯誤な書き込みをしてるし。
いつからこの人はこんなに錆ついちゃったのか

57 :
libpng-1.5.1がコンパイルできない

58 :
先にZlibビルドしないといけないような気がする。大分前にやったからわすれた。

59 :
と思ったらバージョン間違えた。わすれてくれー。すまぬー。

60 :
1.5.1限定です、1.4.5までなら簡単にコンパイルできるんだけど1.5.1はなんかおかしい…

61 :
アプリケーションを作る時は、そのアプリケーションで使用するライブラリを書くつもりで
プログラムを書けと、誰かが言っていたな

62 :
欲しい機能を全部実装できてるのに数年経つと使い方忘れてて組み直した方が早い

63 :11/07/16
俺は3日でそうなる
TOP カテ一覧 スレ一覧 削除依頼
・ 次のスレ
OpenGLゲーム作成初心者スレ
ステッピングモータの制御について
【sockets】HTML5を使って作る高度なウェブアプリ【3D】
Go part4