Win32API質問箱 Build ..
[2ch|▼Menu]
463:デフォルトの名無しさん
07/04/30 12:12:46
>>462
MessageBoxを入れてみました

464:デフォルトの名無しさん
07/04/30 12:15:28
どうしてボーランドの言語仕様ってあそこまで見苦しいの?
クラスや関数名なんて汚らしいしIDEも不細工極まりない
C++にしろパスカルにしろ目障りで読む気すらしないね。

465:デフォルトの名無しさん
07/04/30 12:17:41
ボーランド見苦しい
スレリンク(tech板)

466:デフォルトの名無しさん
07/04/30 12:21:43
bccの#pragmaにdata_segなんてないぞ。

467:デフォルトの名無しさん
07/04/30 12:25:11
>>466
WINDOWSプログラミングスパイスって本にのってたからそのまま使ってみたんだが、だめだったか・・・

468:デフォルトの名無しさん
07/04/30 12:33:59
URLリンク(msdn.microsoft.com)
をみて、DllMain内で複雑な処理はできいないと理解しよう。

469:デフォルトの名無しさん
07/04/30 12:37:36
_tDllMainな

470:デフォルトの名無しさん
07/04/30 12:38:38
>>443
PeekMessageをスレッドの最初に呼んでおけば
そのスレッドにメッセージキューが作られるから
あとはスレッドメッセージで処理すればいい。
送信はPostThreadMessageで
受信はGetMessageのMSG構造体のHWNDが0のやつが
スレッド宛のメッセージ。

471:デフォルトの名無しさん
07/04/30 12:43:44
BOOL WINAPI _tDllMain(HINSTANCE hInstance,DWORD dwNotification,LPVOID lpReserved){
hInstDLL=hInstance;
return TRUE;
}

修正

472:デフォルトの名無しさん
07/04/30 12:49:24
ドラえもーん、これガソリンはレギュラーでも走るの?
いやガソリンでは無理だよ。もっとパワーのあるやつじゃないと。
プルトニウムだよのび太君。

473:デフォルトの名無しさん
07/04/30 13:27:45
BOOL WINAPI _DllMain(HINSTANCE hInstance,DWORD dwNotification,LPVOID lpReserved){
hInstDLL=hInstance;
makehook(hInstance);
return TRUE;
}

intmakehook(HINSTANCE hInst){
hhook=SetWindowsHookEx(WH_MOUSE,(HOOKPROC)mousehookproc,hInst,0);
if(hhook==NULL){
MessageBox(NULL,"MAKE HOOK ERROR","ERORR",MB_OK);
return 0;
}

return 1;
}

にすると問題ないみたいなんだけど・・・
グローバル変数にコピーできない
なぜだ?

474:デフォルトの名無しさん
07/04/30 13:45:13
WinAPIの質問じゃないような気がしてきた

475:デフォルトの名無しさん
07/04/30 13:47:07
とりあえずフック抜いてインスタンスハンドルだけコピーするDLLでも作ってろ

476:デフォルトの名無しさん
07/04/30 13:51:36
窓は作らずに(非表示ではなく)
DLLの関数からShell_NotifyIconで登録してGetMessageでメッセージを受取れますか?

477:デフォルトの名無しさん
07/04/30 13:53:06
不可能

478:デフォルトの名無しさん
07/04/30 13:54:27
Shell_NotifyIcon から タスクトレイアクションを invoke できるようにするために窓が必要

479:デフォルトの名無しさん
07/04/30 14:00:08
なんか最近この質問多いな

480:デフォルトの名無しさん
07/04/30 14:05:29
間欠泉のようなもんだから(2回目)

481:デフォルトの名無しさん
07/04/30 14:09:08
タスクトレイ と フック は源泉なのでしょう

482:デフォルトの名無しさん
07/04/30 14:24:49
フックは多少ややこしいから分からんでもないけど…

トレイアイコンの方は潔癖症に近くねぇ?
いいじゃねーかウィンドウ一つくらい

483:デフォルトの名無しさん
07/04/30 14:30:09
メッセージ通知用ウィンドウなんてたくさん使われているよ。DDEとかシステム周りでもね。

484:デフォルトの名無しさん
07/04/30 14:30:28
そもそも「窓作らずメッセージ受け取れますか?」ってやってみればすぐわかるじゃねーか

485:デフォルトの名無しさん
07/04/30 14:40:48
それよりもまずテンプレに沿ってMSDN読んで来い

URLリンク(msdn.microsoft.com)

486:デフォルトの名無しさん
07/04/30 14:52:16
EnumWindowとかで窓一覧を取得するとあきれるほど非表示ウィンドウだらけだからな。
いまさら一つ増えたところで・・

487:デフォルトの名無しさん
07/04/30 14:55:10
Winsock の Async の面倒見るのも見えない Window でやりくりしてるな

488:デフォルトの名無しさん
07/04/30 14:57:17
まあ落ち着けよ

489:デフォルトの名無しさん
07/04/30 15:06:42
WindowがなくてもHWNDもらう方法はないの?

490:デフォルトの名無しさん
07/04/30 15:08:13
>>475
やってみた
MainDllないではグローバルインスタンスハンドルにコピーできてるみたいだけど
makehookを呼び出すとNULLになってるみたい

491:デフォルトの名無しさん
07/04/30 15:09:38
逆に考えるんだ

makehook内で参照してるのがグローバル変数ではないのではないかと考えるんだ

492:デフォルトの名無しさん
07/04/30 15:13:20
>>476
HWND_DESKTOP名義で登録してHOOK

493:477
07/04/30 15:13:39
>>489
メッセージ送信先のウィンドウをデスクトップにでもしておいて
グローバルフックで定義したメッセージを引っ掛ければできなくはない

ウィンドウ作らない分フックにリソース消費するけどねw

494:デフォルトの名無しさん
07/04/30 15:15:07
久々に綺麗なケコ-ン

495:デフォルトの名無しさん
07/04/30 15:28:18
ウィンドウズ自体の欠陥ですか

496:デフォルトの名無しさん
07/04/30 15:35:31
いいえ

497:デフォルトの名無しさん
07/04/30 16:50:13
                  /    /  . :   ヘ/!    \
                 //   / . /: : ∠、ム|  .    ヽ
                / ィ   .  / :/|: |: :/   ノ: 人:     ハ
                  i/ . : . | .|{‐ |=ヘ{‐'! ` =ナ左、 V:|:   .ハ
                 / | :|: : |: :八 | o ヽ|  ´ o ∨/:   i |
                |:i: : . 、 |{ ヘ! .彡 ,  ミ、  /メ|  . ハ|
                 ヽ|ヽ: : .`| .三´ _____ ̄彡'/ . ://リ
                    > .\ |ニ. 二、,二.ヽ| /: //
                      / : : ハ`` V: : : : :ン∠イ : : ヽ ァハハ八八ノヽノヽノヽノ \ノ \ / \ / \
                  / . : :/ : \ \―/ /: :|: : : . :ヽ
                   /  . : : : :ィ: > ` ̄ イ: : 、 、、: : : : .ハ
                   /  . :/i/ "´ |  ̄ | `^``゙^\:、 : . ハ
                i/ . :/    へ ノ   __ Vニ、   ヽi、:、: i
                 ハ i:/  ∠.... iく__ 彡⌒ソ   > ‐ 、 ヽi、!
                  V / ̄、 ̄\\  ∠ニ -‐_厂 ヽ.  `
                  /  |: レ  ̄ ̄` 厂| ̄,r ̄-  、: |.  i
                /   .|/     厂 | '´     V:  丶
              「 ̄ ̄`ヽ/. : : : . . /  ハ  . : : : : : . V/ ̄`ヽ
              ,ノ二二.ヽ {. : : : : : :∧ヽ/∧: : : : : : : : :} . ニニヽ
            < ̄ィ―- 、ヽV: : : : : :\//: : : : : : : : ノ//. --t、ヽ
             `7    ヽ.ハ: : : : : : : :`´|: : : : : : : : : {彡''´   |/




498:デフォルトの名無しさん
07/04/30 17:14:45
>>473
そもそもDllMainでuser32.dllの関数を呼び出してはいけない(もちろんMessageBoxも)

499:デフォルトの名無しさん
07/04/30 17:15:45
>>492-493
そっちのほうがよっぽど気持ち悪いんだが潔癖症の方々はウィンドウを作らないこと自体
が目的化してるんですかね。健康のためなら死んでもいいみたいな。
>>489とか見てると釣りのようにも思えるけど

500:デフォルトの名無しさん
07/04/30 18:02:07
やってみることに意味があるんだろう
無いけど

501:デフォルトの名無しさん
07/04/30 18:07:31
ShellExecuteでファイルを開くと新しいウィンドウで開かれますが、
既存のウィンドウ内に表示させることは可能でしょうか?
具体的にはswfなどのファイルを、BMPをペタペタ貼るような感じで使いたいのですが・・・

502:デフォルトの名無しさん
07/04/30 18:29:52
ActiveXでFlashコントロールをホストすればー

503:デフォルトの名無しさん
07/04/30 19:22:13
っていうかWindow作るのダサいし

504:デフォルトの名無しさん
07/04/30 20:09:44
MSXML6.0でXMLをロードするときに関数にIXMLDOMDocumentをポインタで引き渡すと値が返ってきません。
関数の内部での値はとれているのですが。
こういう仕様なのでしょうか?

OKの場合

CComPtr<IXMLDOMDocument> xmldom;
if(CoCreateInstance(CLSID_DOMDocument, NULL, CLSCTX_INPROC_SERVER, IID_IXMLDOMDocument, (void**)&xmldom) != S_OK){
return;
}

xmldom->put_async(VARIANT_FALSE);
xmldom->load(_variant_t(FileName), &result);
if(result != VARIANT_TRUE){
return;
}


505:デフォルトの名無しさん
07/04/30 20:11:04
NGの場合

if(LoadXML(FileName,xmldom) == false){
return;
}

bool LoadXML(const char* FileName,IXMLDOMDocument *xmldom)
{
VARIANT_BOOL result;
if(CoCreateInstance(CLSID_DOMDocument, NULL, CLSCTX_INPROC_SERVER, IID_IXMLDOMDocument, (void**)&xmldom) != S_OK){
return false;
}
xmldom->put_async(VARIANT_FALSE);
xmldom->load(_variant_t(FileName), &result);
if(result != VARIANT_TRUE){
return false;
}
return true;
}

506:デフォルトの名無しさん
07/04/30 20:18:34
引数でポインタを返したければ、その引数はポインタのポインタである必要がある、って
いうCの基本のお話なのかな?

507:デフォルトの名無しさん
07/04/30 21:09:37
×bool LoadXML(const char* FileName,IXMLDOMDocument *xmldom)
○bool LoadXML(const char* FileName,IXMLDOMDocument **xmldom)

508:デフォルトの名無しさん
07/04/30 21:16:44
まあ、ポインタ参照にしてもいいけどネ

509:デフォルトの名無しさん
07/04/30 22:21:03
>>491
その可能性もあるけど
そうするともうどうしようもなくないか?
>>498
へー

510:デフォルトの名無しさん
07/04/30 22:46:27
#define STRICT
#include <windows.h>
#include <windowsx.h>
#include "ResHOOKTEST.h"
#include "HOOKTEST.H"
static HWND hWndmain;
static HINSTANCE hInst;

LRESULT CALLBACK mainDlgProc(HWND hDlg,UINT message,WPARAM wparam,LPARAM lparam){
switch(message){
case WM_COMMAND:
if(wparam==HOOKON){
makehook();
return TRUE;
}
if(wparam==HOOKOFF){
unhook();
EndDialog(hDlg,TRUE);
}
default: return FALSE;
}
return TRUE;
}
int PASCAL WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
UNREFERENCED_PARAMETER(nCmdShow);
hInst=hInstance;
LoadLibrary(TEXT("HOOKTEST.dll"));
DialogBox(hInstance,"MYDLG",NULL,(DLGPROC)mainDlgProc);
return 0;
}

511:デフォルトの名無しさん
07/04/30 22:48:04
あああああああもうだれかたすけてえええええええええええええ

512:デフォルトの名無しさん
07/04/30 22:48:21
URLリンク(page11.auctions.yahoo.co.jp)

513:504
07/04/30 23:08:00
>>506
ポインタで引き渡しているのに、ポインタのポインタで渡さなければならないのですか?
すみません。この辺理解がよくできてないです。

>>507
変更してみたのですが、
xmldom->put_async(VARIANT_FALSE);
の箇所のメンバ指定の方法がよくわかりません。
こういう感じで変更してみたのですが、コンパイルエラーが無くなりませんでした。
*(xmldom)->put_async(VARIANT_FALSE);

APIよりC言語の基本のほうを勉強したほうがよさそうですね・・・

514:デフォルトの名無しさん
07/05/01 00:38:58
>>513
(*xmldom)->put_async(VARIANT_FALSE);
'->'の方が優先順位が高い。
もちろん、CoCreateInstanceの方も (void**)xmldom に直してあるよな。

後CLSID_DOMDocumentだと、MSXML3以前のインスタンスが返されていると思う。
MSXML4以降の機能を使いたければ、個別のCLSIDを指定する必要がある。
MSXML6なら、CLSID_DOMDocument60って感じで。詳細は英語版MSDN。

515:491
07/05/01 02:07:50
>>510-511
今思ったんだけどさー

別にhInstanceをグローバル変数にコピーしなくても
GetModuleHandle(”dll名”)に置き換えれば良いんじゃないの

516:デフォルトの名無しさん
07/05/01 02:16:32
さすがジョースター卿w
発想の転換だなw

517:デフォルトの名無しさん
07/05/01 04:02:47
>>515
だめです

518:デフォルトの名無しさん
07/05/01 08:58:43
>>473 DLL側本体は int makehook(HINSTANCE)
>>510 利用側は makehook();

根本から間違ってねーか?

519:デフォルトの名無しさん
07/05/01 09:36:11
UrlDownloadToCacheFileでWeb上の頻繁に更新されるファイルを取得した場合、
キャッシュ済みのデータが戻ってきたりで必ずしも最新のファイルでない場合がよくあるのですが、
強制的に更新させる方法はないのでしょうか?

自分でソケット使って書くのマンドクセ('A`)

520:デフォルトの名無しさん
07/05/01 09:42:18
ファイルを一度削除してから再度実行すれば?

521:デフォルトの名無しさん
07/05/01 10:05:39
#include <windows.h>
#define EXPORT extern "C" __declspec(dllexport)
HINSTANCE hinst;
BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD dwDllMainEvent,LPVOID lpvReserved){
if(dwDllMainEvent==DLL_PROCESS_ATTACH)
hinst = hinstDLL;
return TRUE;
}
EXPORT int func(void){
char buf[15];
wsprintf(buf,"%d",hinst);
MessageBox(NULL,NULL,buf,MB_OK);
}

dllにして外部から呼び出すとインスタンスハンドルはコピーされている
460=461がコード内で妙なことしてるとしか思えない

522:デフォルトの名無しさん
07/05/01 10:07:34
VC買え

523:デフォルトの名無しさん
07/05/01 10:14:31
Windowsの窓ありきな設計思想に問題があるんじゃないかな。

524:デフォルトの名無しさん
07/05/01 10:19:36
static HMODULE g_hModule = NULL;

BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
g_hModule = hModule;
break;
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}

525:デフォルトの名無しさん
07/05/01 10:20:46
>>523
非表示の窓を作れないorやたら面倒なら確かに問題があるかもな

526:デフォルトの名無しさん
07/05/01 10:21:02
>>510
どこでGetProcAddressしてるの?

527:デフォルトの名無しさん
07/05/01 11:21:16
GUIを必要としないのに非表示の窓を作るのは倫理的に間違っている。

528:デフォルトの名無しさん
07/05/01 11:22:50
知らないならレスするな

529:デフォルトの名無しさん
07/05/01 11:26:22
GUIが必要だからタスクトレイに表示するのでは( ̄ー ̄)

530:デフォルトの名無しさん
07/05/01 11:39:23
>>527
ネットワークサービスだけ立ち上がればいいのに、GUIでしか起動できないWindowsは間違っている。
だからCUIのみでも使えるLinuxでも使えば?

531:デフォルトの名無しさん
07/05/01 11:53:53
クッキー焼いてみたの、ちょっと味見してくれない?
勘違いしないでね、別にあんたの為に作ったんじゃないんだからね。

532:デフォルトの名無しさん
07/05/01 12:15:12
Longhorn ServerはついにGUIレスモードが

533:デフォルトの名無しさん
07/05/01 12:22:11
そもそもサービスは・・・

534:デフォルトの名無しさん
07/05/01 12:39:43
>>531
わっふるわっふる

535:デフォルトの名無しさん
07/05/01 13:33:10
>>532
当然タスクトレイも使えないわけだが
ウィンドウはいらないけどタスクトレイは必要なんて頭のおかしい要求する奴以外は
問題ないわな

536:デフォルトの名無しさん
07/05/01 14:28:36
タスクトレイのアイコンでクリック連打するとクリックした回数に応じて
他アプリを立ち上げるランチャーなんてどうだろう

537:デフォルトの名無しさん
07/05/01 14:33:31
つクイック起動

538:デフォルトの名無しさん
07/05/01 15:17:38
ppmフォーマットの画像を読み込ませてウィンドウに表示したいのですが
どうしたらいいですか?
LoadImageだとppmは読めないので困ってます

539:デフォルトの名無しさん
07/05/01 15:20:20
ppmをDIBに変換すればいいんじゃね

540:デフォルトの名無しさん
07/05/01 15:23:14
ppmはグレイスケールの画像で、fscanfで独自に読み込んで
るんですけど、そのDIBには頑張れば変換出来そうですか?

541:デフォルトの名無しさん
07/05/01 15:27:33
できるけど、そもそもLoadImage使おうとしたのは何なんだ

542:デフォルトの名無しさん
07/05/01 15:28:31
CreateDIBSection → BitBlt のコース
WM_PAINT で SetPixel ぐるぐる回すコース

543:デフォルトの名無しさん
07/05/01 15:40:40
LoadImageで読み込めたら表示も楽に出来ると
思ってました・・・
CreateDIBSectionってやつで頑張ってみようと思います

544:デフォルトの名無しさん
07/05/01 15:46:10
Susie Plugin とか使うとか
// 懐かしい響きだな

545:デフォルトの名無しさん
07/05/01 18:30:14
SQLConfigDataSourceでMySQLをODBCに登録する方法を教えてください

546:デフォルトの名無しさん
07/05/01 18:36:53
OOの話でよく、
「OOはデータと操作とカプセル化しちゃって、その部品を使うこと」
みたいなこと書いてあるの見ることあるけど、
これって構造化の話だよな?

547:デフォルトの名無しさん
07/05/01 18:49:47
>>546
構造化と言うと、普通はDijkstraの「gotoやめれ」でしょ。OOよりだいぶ前。

548:デフォルトの名無しさん
07/05/01 19:00:35
OO はカプセル化が基本ではあるが、
ポリモーフィズムが一番の肝だと思うんだぜ。

549:デフォルトの名無しさん
07/05/01 19:22:09
>>518
>>473はためしに書き直してみただけ

550:デフォルトの名無しさん
07/05/01 19:32:46
>>527
不合理ではあるが、HWND_MESSAGE なんてのもあるな。

551:デフォルトの名無しさん
07/05/01 19:53:39
ネ申

552:デフォルトの名無しさん
07/05/01 21:24:43
>547
構造化は、TopDownとBottomUpと複合設計って事だよ。

553:デフォルトの名無しさん
07/05/01 21:32:30
>>545
SQLConfigDataSourceでODBCにMySQLを登録する方法を教えてください
の間違いじゃね?

これ、C:\Program Files\Common Files\ODBC\Data Sourcesフォルダ下に
ファイル置くだけじゃなかった?

554:デフォルトの名無しさん
07/05/01 21:42:39
>>519
亀レス気味だが、
IBindStatusCallback::GetBindInfoが呼び出された時に、
BINDF_GETNEWESTVERSIONフラグ返せばいいんじゃね?
使ったことないから保証はしないが。

555:553
07/05/01 21:46:58
>補足
それでも、素でDSNファイルを作るんなら、
以下のサイトで接続文字列をチェックし、
URLリンク(msdn2.microsoft.com)
lpszAttributesを作成する。
各パラメータはNULLでつなぎ、最後だけNULLを2つ繋ぐ。
(参考:URLリンク(msdn.microsoft.com)
lpszDriver は、"MySQL ODBC 3.51 Driver"かな?

んで、
SQLConfigDataSource(NULL, ODBC_ADD_SYS_DSN, lpszDriver, lpszAttributes);
ではだめか?

556:デフォルトの名無しさん
07/05/01 22:09:45
>>521
#include <windows.h>
#include "ResHOOKTEST.h"
#include "HOOKTEST.h"

LRESULT CALLBACK mainDlgProc(HWND hDlg,UINT message,WPARAM wparam,LPARAM lparam){
switch(message){
case WM_COMMAND:
if(wparam==HOOKON){
func();
return TRUE;
}
if(wparam==HOOKOFF){
EndDialog(hDlg,TRUE);
}
default: return FALSE;
}
return TRUE;
}

int PASCAL WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
UNREFERENCED_PARAMETER(nCmdShow);
/*LoadLibrary(TEXT("HOOKTEST.dll"));*/
DialogBox(hInstance,"MYDLG",NULL,(DLGPROC)mainDlgProc);
return 0;
}

でよみだしたけどやっぱり無理だお

557:デフォルトの名無しさん
07/05/01 22:55:40
VK_KANAが立っているのに

558:デフォルトの名無しさん
07/05/01 23:01:15
しかし飽きもせず、おまえらフック大好きだよなー

559:デフォルトの名無しさん
07/05/01 23:09:41
しかしフック以前の段階で詰まってる罠

560:デフォルトの名無しさん
07/05/01 23:26:28
僕ハッカー!

561:デフォルトの名無しさん
07/05/01 23:27:36
僕バッカー

562:デフォルトの名無しさん
07/05/01 23:28:14
俺チンコ

563:デフォルトの名無しさん
07/05/01 23:47:57
フックはひとつのDLLで二つとかセット出来ますか?

564:デフォルトの名無しさん
07/05/02 00:26:04
『日本初・民営刑務所 囚人が「ソフト開発」』だってよw

ある意味俺らは囚人だww

565:デフォルトの名無しさん
07/05/02 00:31:03
>>563
聞く前にまずやってみろ
SetWindowsHookExのパラメータ見ればわかりそうなもんだが

>>556
もうめんどくせーから
URLリンク(www.uploda.net)
でDLL作れ


566:デフォルトの名無しさん
07/05/02 08:02:53
初心者ですみません。
gdi+のライブラリの中身を解析したいのですが、可能でしょうか?
それともうひとつ、図々しいですが
jpgファイルの構造を教えてくれるところはないですか?
DIBのピクセルビットを操作するようにjpgのピクセルを操作したいのです。
お願いします。

567:デフォルトの名無しさん
07/05/02 08:13:28
>>566
スレ違いだと思うが・・・


jpeg header formatでググる

Code Projectを漁る
URLリンク(www.codeproject.com)
などなど

OleLoadPictureFileでDCに乗せるとかいろいろ

568:デフォルトの名無しさん
07/05/02 08:29:10
アタッマきた

569:567
07/05/02 08:49:01
俺が先に云うね

567にカチンときたので教えません。 バーカ!

>>568
これでいい?

570:566
07/05/02 10:07:04
>>567
ありがとうございます。
試してみます。

571:デフォルトの名無しさん
07/05/02 10:39:54
>>566
GDI+は、ソース公開されていないよ。
逆アセンブルするんだとか言うなら誰も止めはしないが、せいぜいライセンスは気にかけておけ。

JPEGは、画像を圧縮して記録していて、解凍しないと画像は取り出せない。
仮に編集するとしたら、編集終了後にJPEGとして保存するために再び圧縮することになる。



572:デフォルトの名無しさん
07/05/02 10:42:05
不可逆の圧縮に対して解凍というのは違和感有りまくり

573:デフォルトの名無しさん
07/05/02 10:55:00
>>572
同意。

今の時代は質よりも、
聞こえればいい、見えればいいの時代なのね

574:デフォルトの名無しさん
07/05/02 10:55:19
JPEGはハフマンの強さを見せ付けられる圧縮技術。

575:デフォルトの名無しさん
07/05/02 10:59:50
フーリエ先生も自分の考えてたことが数百年後に役に立つと予想出来たであろうか

576:デフォルトの名無しさん
07/05/02 11:17:38
>>572
冷凍食品は不可逆でないのか?

577:デフォルトの名無しさん
07/05/02 11:36:04
それは屁理屈

展開でいいじゃん

578:デフォルトの名無しさん
07/05/02 11:51:53
素材そのものではないのに
素材の名前をつけた料理には違和感ありまくり

579:デフォルトの名無しさん
07/05/02 11:53:06
タイヤキ

580:デフォルトの名無しさん
07/05/02 11:56:26
ミスタードーナツのメニュー

581:デフォルトの名無しさん
07/05/02 12:06:29
可逆だろうが不可逆だろうが圧縮に対して解凍は違和感あり
展開・復元でいいでしょ
不可逆に対して復元は語弊あるけど

582:デフォルトの名無しさん
07/05/02 12:12:55
解凍って言い回しはアーカイブファイルでないとしっくり来ない

まあ意味は伝わるからどうでもいいけどね

583:デフォルトの名無しさん
07/05/02 12:21:52
まあな。文脈さえ読めればおk
宮廷に仕えてるわけでもないしねw

584:デフォルトの名無しさん
07/05/02 12:38:11
解凍って言い回しはLHarc(現LHAの前身)の頃に作者の吉田さんが使い始めたんだよね。
当時のパソ通コミュで(それこそvoidも含めてw)多くのエンジニアからやめろと言われたにも関わらず。
吉田さんが自粛してくれていればこんなことには……

585:デフォルトの名無しさん
07/05/02 12:46:48
>>578
Jリーグカレーとか?

586:デフォルトの名無しさん
07/05/02 14:14:38
おかわり

587:デフォルトの名無しさん
07/05/02 15:06:28
どうでもいい

588:デフォルトの名無しさん
07/05/02 15:44:05
>>555
ありがとうございます。
こんな感じでやってみたのですがダメでした・・・・
どこが悪いでしょうか

BYTE *drv = "MySQL ODBC 3.51 Driver";
BYTE att[512];
::wsprintf( &att[0], "DSN=%s\0", "test1" );
::wsprintf( &att[::lstrlen(att)+1], "Server=%s\0", "testserver" );
::wsprintf( &att[::lstrlen(att)+1], "UID=%s\0", "root" );
::wsprintf( &att[::lstrlen(att)+1], "PWD=%s\0", "1234" );
::wsprintf( &att[::lstrlen(att)+1], "DATABASE=%s\0\0", "testdb" );
::SQLConfigDataSource( NULL, ODBC_ADD_SYS_DSN, drv, att );


589:デフォルトの名無しさん
07/05/02 15:52:35
文字列を文字列として渡す関数に \0 をつけるのは無意味
よって、\0 も \0\0 も意味がない。
それ全部はずした上で、配列に直接\0入れてやれ

590:デフォルトの名無しさん
07/05/02 15:58:53
>>589
意味はないけど間違いでもない。
wsprintfで入れてくれるから後から入れるのはもっと無意味

591:デフォルトの名無しさん
07/05/02 16:01:34
>>590
あのさ、直接入れるのは\0\0と2つ重ねる話なんだけど

592:デフォルトの名無しさん
07/05/02 16:04:11
あと、strlenだと、最初の\0 間でしか数えないから、sprintfの戻り値を足してやれ

593:デフォルトの名無しさん
07/05/02 16:04:22
HINSTANCE hLib = LoadLibrary("xxx.dll");
を実行すると、下記のエラーが出力されます。

error C2664: 'LoadLibraryW' : 1 番目の引数を 'const char [12]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。


解決方法を教えてください。

参考ページ:URLリンク(homepage2.nifty.com)
環境:WindowsXP, Visual C++ EE 2005


594:デフォルトの名無しさん
07/05/02 16:09:52
>>588
最初のstrlen(att)+1以外のstrlen(att)+1が全て間違っている。
それでは長さが全部同じになるから、先頭アドレスは足していかないと

595:デフォルトの名無しさん
07/05/02 16:09:59
>>593
HINSTANCE hLib = LoadLibrary(_T("xxx.dll"));

で、どうか?

596:デフォルトの名無しさん
07/05/02 16:17:18
>>595

ありがとうございます。
読み込めました。


597:デフォルトの名無しさん
07/05/02 16:48:27
初歩的な質問で申し訳ありません。

VC++でダイアログベースのプログラムの作成中です。
プロシージャ内でクラスを宣言して使用したいのですが、エラーになります。
たとえば以下のようなプログラムのがあるとします(Fooクラスが別途存在します)

LRESULT CALLBACK DlgProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
 switch (msg) {
  case WM_INITDIALOG:
   Foo foo;
   return FALSE;
  case WM_HOGE:
   foo.hoge();
  default:
   return FALSE;
 }
 return TRUE;
}

この場合、以下のエラーが出力されます
 'foo' の初期化が 'case' ラベルによって行われませんでした。

調べた結果、WM_HOGE内でFooクラスの宣言がなされてない(初期化がされていない)のでエラーになっている、ということはわかりました。

ここで質問なのですが、Fooクラスの宣言というのは一般的にどこで行うべきなのでしょうか?
プロシージャの最初のswitchの外で宣言してしまってもいいものなのでしょうか。

598:デフォルトの名無しさん
07/05/02 16:51:41
>>588
DriverとAttributesは以下で判断

@.ODBCドライバを落とし、インストールする。
 URLリンク(dev.mysql.com)

A.コンパネから“管理ツール”の“データソース(ODBC)”を開く。
B.ファイルDNSタブから[追加]ボタンを押す・
C.データソースMySQL ODBC 3.51 Driverを選択し、[次へ]を押す。
D.データソース名に"MAROYUKI"と入力し、[次へ]を押す。
E.とりあえず完了させる。
F.次にConnecter/ODBCダイアログが開くので、必要情報を代入し[OK]を押す。
G.\Program Files\Common Files\ODBC\Data SourcesフォルダにMAROYUKI.dsnができる。
H.MAROYUKI.dsnをテキストエディタで開き、lpszDriverとlpszAttributesに一致するか確認。

599:デフォルトの名無しさん
07/05/02 16:52:15
LRESULT CALLBACK DlgProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
 switch (msg) {
  case WM_INITDIALOG:
   {
     Foo foo;
   }
   return FALSE;
  case WM_HOGE:
   foo.hoge();
  default:
   return FALSE;
 }
 return TRUE;
}


こうすればいいがー

600:デフォルトの名無しさん
07/05/02 16:54:30
>>594
こんなのSQLConfigDataSource()を呼ぶ所でattの512バイトがどうなってるのか見ればすぐわかるのにね。

601:デフォルトの名無しさん
07/05/02 16:54:37
しまった!
↓のcaseでfooつかっとるかこれ!
んじゃ、外に定義でいいんじゃね?

602:デフォルトの名無しさん
07/05/02 16:55:07
>>599
それは、case WM_HOGE でfooが使えないべ

>>597
switchの外でいいよ。
case WM_HOGE の時に Foo foo を通過してないまま foo を使うことになるべ。

603:デフォルトの名無しさん
07/05/02 17:00:29
フォールスルー考えてのことならいいんだが
期待しているのは static のような気がする

604:デフォルトの名無しさん
07/05/02 17:06:56
要は、そのfooをどこでどう使いたいか、どういう仕様か、によりけりだな。

605:597
07/05/02 17:07:02
レスありがとうございます。

LRESULT CALLBACK DlgProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
 Foo foo; // ←switchの外で宣言
 switch (msg) {
  case WM_INITDIALOG:
   return FALSE;
  case WM_HOGE:
   foo.hoge();
  default:
   return FALSE;
 }
 return TRUE;
}

というプログラムで期待通りの動作を確認しました。
ありがとうございました。

606:デフォルトの名無しさん
07/05/02 17:07:48
うーむ、INIT_DIALOGはなんだったんだろうw

607:デフォルトの名無しさん
07/05/02 17:44:03
レンジのアイコンだから解凍で良いだろ

608:デフォルトの名無しさん
07/05/02 17:54:55
蒸し返すなw

609:デフォルトの名無しさん
07/05/02 18:02:20
>>607
アホかい。
解凍と言う用語があったから、電子レンジのアイコンが作られたに決まっておろうが。

>>584
吉田じゃなくて吉崎だな。

610:デフォルトの名無しさん
07/05/02 18:11:15
石化なんて表現もあったからなw

611:デフォルトの名無しさん
07/05/02 18:18:52
俺:「ファイルの圧縮で、反対の言葉が解凍ってのはどうかと話題がでてるが、
    姉ちゃんならどういう言葉が妥当だと思う?
姉:「うーん、レンジでチンして解凍みたいだから、解チンってのはどう?」
俺:( ゚д゚)ポカーン



612:デフォルトの名無しさん
07/05/02 18:21:16
つまらん

613:デフォルトの名無しさん
07/05/02 18:22:28
圧縮の対義語は伸張やろが!

614:デフォルトの名無しさん
07/05/02 18:59:27
圧縮解凍って言葉が昔から対になってんだから小さい事気にすんな
日本語して意味がおかしくて気に食わないならpack、unpackって言え

615:デフォルトの名無しさん
07/05/02 19:12:26
圧縮/伸張、compress/decompressでFA。

616:デフォルトの名無しさん
07/05/02 19:39:26
>>614
おいおい、昔って言ったって、吉崎某が使い始めてから未だ20年経ってないぞ。
#あ、充分昔かw

617:デフォルトの名無しさん
07/05/02 19:45:45
DB関係の作った事ないし詳しくないからとんでもなく見当違いな事言ってるかもしれないけど教えてくれ。
APIでDB触れるのってODBCだけ?oo4oとかADOとかDAOとかAPIとして持ってないのか?


618:デフォルトの名無しさん
07/05/02 20:04:43
符号化の結果縮むのが圧縮。
符号化の結果伸びるのが伸長。
復号化が解凍。

じゃないのか?

619:デフォルトの名無しさん
07/05/02 20:38:55
>>617
何を聞きたいのかよくわからん
それらは最終的にODBC使うんじゃなかったっけ

620:デフォルトの名無しさん
07/05/02 21:04:09
エンコード/デコードで

621:デフォルトの名無しさん
07/05/02 21:39:49
>>616
実際にはもっと昔から使われていた。
それ以前にはスタンダードと言えるほど広まっているツールが
なかったからLHA発祥という誤解が定着してしまっただけだ。

622:デフォルトの名無しさん
07/05/02 21:57:53
っYZ1

623:デフォルトの名無しさん
07/05/02 22:09:52
LHA は圧縮だけじゃなくて書庫の機能も持っているから、展開が妥当だと

624:デフォルトの名無しさん
07/05/02 22:37:24
>>619
そうだったのか。いや俺も実際何を聞きたいのかよくわからないんだがw

つまりODBCAPI以外にDBを触れるAPIがあったら知りたかった

625:デフォルトの名無しさん
07/05/02 22:52:48
oo4oもADOもDAOも、みな関数と言う形ではAPIを持っていないと思う。

626:デフォルトの名無しさん
07/05/02 23:02:01
oo4oなつかしいなw

627:デフォルトの名無しさん
07/05/02 23:11:18
>>611
俺が「それはカユイちんこみたいだな」って言ってたって言っておけ
あと「俺のチンコが痒いです」とも言っておけ

628:デフォルトの名無しさん
07/05/02 23:32:08
>>585
うぐいすパンとか?

629:デフォルトの名無しさん
07/05/02 23:35:39
うぐいすパンはうぐいす入ってるだろ

630:デフォルトの名無しさん
07/05/02 23:51:47
東京ばな奈とか?

631:デフォルトの名無しさん
07/05/02 23:58:26
JETはどうした

632:デフォルトの名無しさん
07/05/03 00:04:46
だからコンパイルエラーはWin32APIとはなんも関係ないっつーの

633:デフォルトの名無しさん
07/05/03 04:08:24
>605
static つけないと呼び出されるたびに初期化されるんじゃないの
まあ動くならいいけど今後のこともあるし

634:デフォルトの名無しさん
07/05/03 04:19:50
static 必要っぽい気はするな。
WM_INITDIALOG で new してユーザ領域にそのポインタを置いて
それを使うともっといいんじゃないかとは思うけど。
同時に複数起動する必要がないならいいけど。

635:デフォルトの名無しさん
07/05/03 04:28:26
WM_PAINT内で
BeginPaint〜EndPaintを二回以上やると
2回目からの描画内容が画面に出ないんですけど
どうしてですか?

636:デフォルトの名無しさん
07/05/03 04:35:46
EndPaint で更新すべき領域をクリアしてしまうんじゃない?

637:デフォルトの名無しさん
07/05/03 08:17:23
フォアグラウンドのIMEの状態を調べてIME_CMODE_ROMANがない場合VK_KANAを有効にしたいのですが。
チェックするタイミングはキーフックとタイマーのどちらが良いでしょうか?

638:デフォルトの名無しさん
07/05/03 08:46:24
>>637
その解法は、両方どつぼりそうな予感。

639:デフォルトの名無しさん
07/05/03 08:49:04
入力対象が確定していれば、
そいつのWM_SETFOCUSメッセージ時じゃだめか?

640:デフォルトの名無しさん
07/05/03 11:48:30
状態が変化する前に、処理すればいいのに

641:デフォルトの名無しさん
07/05/03 11:53:57
WM_PAINTのタイミングで描画しています
ウィンドウを大きくするときは再描画されるのですが小さくするときはされません
どちらでも再描画されるようにするにはどうすればよいでしょうか?

642:デフォルトの名無しさん
07/05/03 12:08:16
>>641
もう少しくやしく。
もしかしたら、違う要因かも知れないから。

643:デフォルトの名無しさん
07/05/03 12:09:51
WS_HREDRAW/WS_VREDRAWとか?

644:641
07/05/03 12:28:08
>>642
最大化ボタンを押したりウィンドウの右下をドラッグしてウィンドウを大きくした場合、
それに連動してウィンドウ内の画像が書き換えられます。
そのときにcase WM_PAINT:を通過していることをMESSAGEBOXを表示させて確認しました

最大化から元に戻す場合やウィンドウの右下をドラッグしてウィンドウを小さくした場合、
ウィンドウ内は再描画されません
(同様にMESSAGEBOXで確認しました)


645:デフォルトの名無しさん
07/05/03 12:28:47
>>643
MSDNやGoogleを検索しましたがなかなか情報がでてきません
関連資料あればお願いします

646:デフォルトの名無しさん
07/05/03 13:03:47
>>645
CS_HREDRAW CS_VREDRAW

647:デフォルトの名無しさん
07/05/03 13:08:19
>>644
WM_PAINT描画部さらせる?

648:デフォルトの名無しさん
07/05/03 13:14:26
>>647
LRESULT WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
    switch( msg )
    {
        case WM_DESTROY:
            Cleanup();
            PostQuitMessage( 0 );
            return 0;

        case WM_PAINT:
            MessageBox(hWnd, "ok", "check", 0);
            Render();
            ValidateRect( hWnd, NULL );
            return 0;

    }

    return DefWindowProc( hWnd, msg, wParam, lParam );
}


649:デフォルトの名無しさん
07/05/03 13:26:03
エクスプローラの縮小版表示で独自の画像形式を表示させたいんだけど、
どうやったら出来ますか?

650:デフォルトの名無しさん
07/05/03 13:27:39
>>649
独自の画像形式とは?
自分が考えたオリジナルフォーマット?


651:デフォルトの名無しさん
07/05/03 13:32:41
>>648
ソースあげ

652:649
07/05/03 13:33:52
>>650
自分が考えたフォーマットもありますし、RLAなどの標準で表示されないフォーマットもあります。


653:デフォルトの名無しさん
07/05/03 13:34:55
>>649
IExtractImage を実装してレジストリに登録

654:デフォルトの名無しさん
07/05/03 13:41:28
>>649

>>653の補足
URLリンク(msdn.microsoft.com)

655:デフォルトの名無しさん
07/05/03 13:52:42
>>641
WM_SIZE で InvalidateRect すれば?

656:デフォルトの名無しさん
07/05/03 13:57:26
>>655
WM_PAINTをWM_SIZEに書き換えたところうまくいきました

相談にのっていただいた皆様本当にありがとうございました

657:デフォルトの名無しさん
07/05/03 14:03:31
WM_SIZE でレンダリングしたのか。
それっていいのか?
というか、WM_PAINT は処理しないのか?

658:デフォルトの名無しさん
07/05/03 14:03:42
>>656
乙。
連休を楽しめ。

659:デフォルトの名無しさん
07/05/03 14:06:00
>>657
WM_SIZEでInvalidateRectをコールし、
WM_SIZE時の範囲を更新範囲に追加したんお

660:デフォルトの名無しさん
07/05/03 14:09:06
レンダリング?

661:デフォルトの名無しさん
07/05/03 14:14:02
>>659
おk。

>>660
>>648

662:デフォルトの名無しさん
07/05/03 14:18:35
レスどうも

>>639
入力中の英和混在入力のモード切替に対応したいので
WM_SETFOCUSじゃ無理なんです。

663:デフォルトの名無しさん
07/05/03 14:44:44
>>637
>フォアグラウンドのIMEの状態を調べてIME_CMODE_ROMANがない場合
>VK_KANAを有効にしたいのですが。
>チェックするタイミングはキーフックとタイマーのどちらが良いでしょうか?

>>662
>入力中の英和混在入力のモード切替に対応したいので
>WM_SETFOCUSじゃ無理なんです。

エスパーじゃないんで要点を詳しく。
現状の具体的な問題点と、その解法にIMEをもってきた理由を特に。
(難解が平易に変わるかも)


664:デフォルトの名無しさん
07/05/03 15:00:16
>>661
どこがレンダリング?w

665:デフォルトの名無しさん
07/05/03 15:20:42
つ[辞書]

666:デフォルトの名無しさん
07/05/03 15:29:50
>>664
Render ってのが見えないのだろうか。

667:デフォルトの名無しさん
07/05/03 15:31:24
【他動-14】 《コ》
〜をレンダリングする、
〔画像{がぞう}などのデータを〕実際{じっさい}に描画{びょうが}する、
〔三次元{さんじげん}のオブジェクトを〕二次元{にじげん}の画像{がぞう}にする
◆データを解釈・計算して視覚的に表示すること。

・ Different browsers render HTML differently. ブラウザによって HTML のレンダリングは異なります。

668:デフォルトの名無しさん
07/05/03 15:37:01
話の流れを読まずに、文字の綴りだけをあげつらった揚げ足取りなんだから
そんなに反応することないのに・・
ちょっと前にも、こういう質問とは本来関係ないことで脱線しなかったか?

669:デフォルトの名無しさん
07/05/03 15:38:32
おや、本当だ
Render()見落としてたわ・・・・


670:デフォルトの名無しさん
07/05/03 15:40:20
>>667
広義には与えられたデータを元に視覚表示すること全てレンダリングだけど
広く一般にレンダリングと言ったら3Dモデルのレンダリングのことを指すのが言葉の難しいところだ

671:デフォルトの名無しさん
07/05/03 15:44:47
HTML レンダリングもよく使うと思うけど。

672:デフォルトの名無しさん
07/05/03 15:45:57
>>663

簡単に言えば、
「窓使いの憂鬱」と言うソフトにカナロックON/OFFで
キーマップを切り替える機能があるんですけど。
IMEの英和混在入力を使うとずれるんですねこれが。
原因は、IME_CMODE_ROMANとVK_KANAがシンクロしないからなんで、
グローバルフックかけて外部から梃入れしようかなと。


673:デフォルトの名無しさん
07/05/03 15:53:07
>>671
表示全てをレンダリングと言うよりは使うとは思うけど
それも結局ソッチの道の人がほとんどだしさ

まぁ、どうでもいいことだと思うけどw

674:デフォルトの名無しさん
07/05/03 16:30:38
アタシのことでけんかしないで!

675:649
07/05/03 16:31:19
>>653-654
サンクス
これからやってみます

676:デフォルトの名無しさん
07/05/03 16:37:13
>>672
開発は終わってるんだな・・・
これソース公開してないかい?

677:デフォルトの名無しさん
07/05/03 16:42:37
>>672

URLリンク(sourceforge.net)
ソースはここみたい。

ある程度処理を読んで解析した上で、対処した方がいいかもね。

678:デフォルトの名無しさん
07/05/03 17:00:08
hook.cpp
n.m_isKanaLockToggled = !!(GetKeyState(VK_KANA) & 1);

これを

HWND hWnd = GetForeGroundWindow();
ImmGetContext(hWnd);
ImmGetConversionStatus(hImc, &dwc, &dws)
n.m_isKanaLockToggled = (dwc & IME_CMODE_JAPANESE) && (dwc ^ IME_CMODE_ROMAN);
ImmReleaseContext(hWnd, hImc);

VS2003でないから試せないけど。

679:デフォルトの名無しさん
07/05/03 17:07:34
おーいXOR…

680:デフォルトの名無しさん
07/05/03 17:50:06
n.m_isKanaLockToggled = (dwc & IME_CMODE_JAPANESE) && (dwc & ~IME_CMODE_ROMAN);

681:デフォルトの名無しさん
07/05/03 17:54:23
&~でも^でもどっちでもよくね?
ダメな理由があるなら別だけど

682:デフォルトの名無しさん
07/05/03 18:27:44
っ どっちもだめ

683:デフォルトの名無しさん
07/05/03 18:54:37
>>681
XORとNOT&ANDが同じ動作とでも思ってるの?

684:デフォルトの名無しさん
07/05/03 18:55:51
CPUの中身は全部XORの組み合わせ

685:デフォルトの名無しさん
07/05/03 19:16:48
>>683
もちろんです

686:デフォルトの名無しさん
07/05/03 19:19:09
00001000 ^ 11111111 = 11110111 TRUE
00001000 ^ 11110111 = 11111111 TRUE

687:デフォルトの名無しさん
07/05/03 19:20:14
>>685
これは すごい ゆとり

688:デフォルトの名無しさん
07/05/03 19:23:27
10以外の位取りはゆとりで教育課程から消えたけど
ビット演算も学校で教えてたっけ?

689:デフォルトの名無しさん
07/05/03 19:29:01
ビット演算まではなかったと思う。

690:デフォルトの名無しさん
07/05/03 19:29:24
学校で習ったかどうかなんて関係ない。

691:デフォルトの名無しさん
07/05/03 19:32:11
工業乙

692:デフォルトの名無しさん
07/05/03 19:34:31
どっちかのbitが立ってることを確認するために

if(hoge & 0x000000C0)

みたいな書き方出来ると思うのですが

両方のbitが立ってることを確認したければ

if(hoge & 0x000000C0 == 0x000000C0)

って書くしか方法ないですか?


693:デフォルトの名無しさん
07/05/03 19:42:07
hoge & 0x000000C0 & 0x000000C0がある

694:デフォルトの名無しさん
07/05/03 19:43:01
if((hoge & 0x000000C0) & 0x000000C0)

695:デフォルトの名無しさん
07/05/03 19:43:38
全部不正解

696:デフォルトの名無しさん
07/05/03 19:44:36
00001000 ^ 11111111 = 11110111 TRUE
00001000 ^ 11110111 = 11111111 TRUE

00001000 &^ 11111111 =
00001000 &^ 11110111 =
にするとどうなるの?

697:デフォルトの名無しさん
07/05/03 19:46:55
>>690
ゆとり教育なんか学力の低下に関係ないと言いたいわけですね。

698:デフォルトの名無しさん
07/05/03 19:50:50
マスクすれ


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4978日前に更新/228 KB
担当:undef