■過去ログ置き場に戻る■ 1- 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

VisualC++相談室 6
1 名前:いさましいチビ :02/01/21 21:10
VisualC++関連の話題を扱うスレッドです。

旧スレッド
http://pc.2ch.net/test/read.cgi/tech/1006834463/l50

2 名前:デフォルトの名無しさん :02/01/21 21:18
もったいないなぁ、まだ書き込めたのに。

3 名前:いさましいチビ :02/01/21 21:25
>>2
ぎりぎりまで書き込むと、そっこうでdat落ちするみたいなんで、
余裕があるうちに作りました。

4 名前::02/01/22 00:45
Effective C++の47項に書いてあるシングルトンのやり方で、
inlineにしても大丈夫なコンパイラを教えてください。
というか、VC++6.0はオッケーですか?


5 名前:4 :02/01/22 10:13
自分で調べてみます。
答えていただかなくて結構です。


6 名前::02/01/22 10:47
>>5
そんな巧妙なトラップを仕掛けなくても、普通に
「自分で調べろや、ゴルァ」でいいじゃないですか…。


7 名前:学習中 :02/01/22 16:28
VC++6.0でコンパイルをかけた時、「このプログラムは(0x0)で終了しました」と出ますが、いったい何が起こっているんですか?

8 名前:デフォルトの名無しさん :02/01/22 16:37
システムに致命的なエラーがでたって、今すぐOSリカバリーしる!

9 名前:8 :02/01/22 16:38
>>7ね、できるだけ急げよ。

10 名前:デフォルトの名無しさん :02/01/22 16:49
>>7

>>8の言ってることは信じるなよ。
それはプログラムの完成度の高さだよ。
「(0x0)で終了しました」はまあまあかな。
ほかに
「(≧x≦)で終了しました」や
「(;´Д`)」や「(・∀・)」なんかもある。

11 名前:デフォルトの名無しさん :02/01/22 16:50
>(;´Д`)
はエロゲのプログラムしてるときよくでたよ。

12 名前:デフォルトの名無しさん :02/01/22 17:09
「このプログラムは(;´Д`)ハァハァで終了しました」

13 名前:デフォルトの名無しさん :02/01/22 17:16
main.cpp( 56 ) : (・∀・)ニクコプーン


14 名前:デフォルトの名無しさん :02/01/22 22:50
>>7

まぁまぁだね。
最高のときは永遠に終了なんてしないさ。


15 名前:デフォルトの名無しさん :02/01/23 05:51
はじめてのWindowsプログラミング@〜B、って本と
MSDNでVC++6.0の勉強してるんですけど
関数とか構造体などについて調べる時に
MSDNでは効率が悪いなぁ、と感じています。

こんな漏れにおすすめの本ってありませんか?

16 名前:デフォルトの名無しさん :02/01/23 05:58
どんな本よりもMSDNのほうが効率がいいと思う俺は逝ってよし?

17 名前:デフォルトの名無しさん :02/01/23 08:48
>>15
関数とか構造体だろ?へたな本よりはるかにMSDN早いぞ。
なれなさい。

18 名前:デフォルトの名無しさん :02/01/23 09:12
>>15
ためしにBITMAPINFOHEADERを調べて見れ。
キーワードを入力するだけで数秒で目的の情報が得られる。
あの説明を本にしたらそれだけで2〜3ページになっちまう。
その上ご丁寧にV4〜5HEADERや関連項目へのリンクまで張ってある。
これより効率のよい本はまず無いと思われ。

19 名前:デフォルトの名無しさん :02/01/23 13:18
LRESULT CALLBACK MainDlgProc(HWND hDlg,UINT uMsg,WPARAM wP,LPARAM lP)
{
static HWND hLV;
switch (uMsg) {
case WM_INITDIALOG:
  hLV = GetDlgItem(hDlg,IDC_LIST);
  InitializeLV(hLV);
  break;
  ....
として自作関数InitializeLVの中でさらに別関数を呼ぶ時に、
InitializeLVの引数であるhLVをそのまま渡しているんですが
たらい回しみたいで変な感じがするんですがこれは普通なんでしょうか?
実際はInitializeLVからリスト構造にアイテムを追加する関数を
呼んでいるのでMainDlgProcで宣言したリストの先頭アドレスも
渡しています。

20 名前:デフォルトの名無しさん :02/01/23 13:26
>>19
人は知らないけれど、別におかしくないと思うYO!!



21 名前:225 :02/01/23 13:30
>>20
hLVがstaticなのはちょっと普通じゃないと思われ。

22 名前:20 :02/01/23 14:02
>>21
見落としてました。逝ってきます。


23 名前:デフォルトの名無しさん :02/01/23 14:07
>>21>>22
ありがとうございます。
staticは直します。

24 名前:デフォルトの名無しさん :02/01/23 14:15
VC4でコンパイルしたオブジェクトとVC5以降でコンパイルしたオブジェクトっ
てリンクしても問題ない? もちろん-Mオプションは一致させるとして。


25 名前:デフォルトの名無しさん :02/01/23 14:42
>>24
多分、ヘルパルーチンの名前が違うんじゃないかな。
だとしたらリンクは無理。
できたとしても、激しく心配。

26 名前:デフォルトの名無しさん :02/01/23 14:47
>>25
やぱし。tnx

27 名前:15 :02/01/23 14:49
>>16-18
やはり、MSDNが一番ですか。
会社の先輩にも同じ事言われたんですよ。
個人的には、横に本があった方が
やりやすいのですが…
馴れるしかないですね。ありがとうございました。

28 名前:デフォルトの名無しさん :02/01/23 15:38
>>27
それは単に紙の方が読みやすいってことでは?
俺もディスプレイ上でMSDNの不自然な日本語訳らしき文を読むよりは
書籍の方が読みやすいけど、リファレンスとして関数や構造体を
調べるならMSDNの方が効率的だと思う。

29 名前:デフォルトの名無しさん :02/01/23 23:54
VBスクリプトだからここじゃないかもしんないけど。
マクロでdoxygenのコメントをつけれるようにしようと思ってVCの
マクロを作成中なのです。

ActiveDocumentのコメントサーチをするときに思ったんだけど、
EOFってどうやって見つけるんですか?
ドキュメントの行数を取得するプロパティみたいなのも無いし。
やっぱドキュメント全選択してSelection.TopLine->BotomLineで
行数をカウントするしかないのか?ダサッ(藁

つかこゆーのは普通アドインなの?

30 名前:デフォルトの名無しさん :02/01/24 11:18
あげ。

31 名前:デフォルトの名無しさん :02/01/26 16:40
最近COMに興味を持ち始めました。
インターネット関連のプログラム(ASP)をやるとなるとCOM(サーバーの方)て必要ですよね?
そこでCOM関連の解説サイトを探しています。
「猫でもわかるプログラミング」みたいな感じでサンプルと解説を行っているサイトって有りませんか?
教えてチョンマゲ!



32 名前:デフォルトの名無しさん :02/01/26 17:17
>>31
プログラムやめろ。

33 名前:デフォルトの名無しさん :02/01/26 17:36
>31
COMじゃなくてまずSOAPを勉強するのが筋というもんです。


34 名前:デフォルトの名無しさん :02/01/26 17:39
>>33
異様に大変らしいね。あれ。

35 名前:デフォルトの名無しさん :02/01/26 17:43
COMもSOAPも理解できてないけどWEBサービス簡単に出来たーYO!

36 名前:デフォルトの名無しさん :02/01/26 18:09
>>35
恐ろしい世の中だ・・・

37 名前:デフォルトの名無しさん :02/01/26 20:28
>>36
激しく同意。

全然関係ないけどさぁ、どうも最近の世の中って、
便利な手段さえ使えば、及第点ぐらいの内容が作れた気になってる厨房が多くない?

きっと「ASPといえばCOM」ってーヤツは、「サーバといえばIIS」で、
「ブラウザとはIEのこと」と思ってるんじゃねーかな。

Badtrans.BやCodeRedの普及を激しく応援したくナターヨ。


38 名前:デフォルトの名無しさん :02/01/26 20:54
> Badtrans.BやCodeRedの普及を激しく応援したくナターヨ。
奴らは応援なんて必要としてないと思われ……。
ガタガタ(((;゚Д゚))ブルブル


39 名前:デフォルトの名無しさん :02/01/27 13:02
ATLのインプロセスサーバーを作ってます。
チュートリアルをやってみて何となく分かった気がします。
VCでビルドすると勝手にレジストリに登録しますが完成したプログラムを他のPCにインストールする場合は
DllRegisterServerを使って登録するんですよね?
インストーラでDLL読み込んでDllRegisterServerをコールって感じ?
それとATLオブジェクトウィザードで「フルコントロール」とか「ライトコントロール」とかありますが
さっぱり分かりません。チュートリアルは「フルコントロール」を使っていたので自分は「フルコントロール」を
使っていますが「フルコントロール」じゃなくて「ライトコントロール」を使わないと都合の悪い時ってあるんですか?
一応ATLの勉強として「フラッシュ」のようなものを作りたいんですが可能ですよね?


40 名前:ABZ :02/01/27 15:35
ClassView内の関数や変数にマウスのポインタを合わせると、四角で囲まれる関数や変数と
なにもアクションが無い関数や変数があるのですが、それらの違いって何なのですか?

41 名前:デフォルトの名無しさん :02/01/27 17:34
>>40
VC++の性能の限界じゃねぇの?
VC++7だとかなり性能上がってるよ。
.や->のコード補完もかなり賢くなってる。

42 名前:デフォルトの名無しさん :02/01/28 00:11
ATLCOMオブジェクトを新規作成して、
適当なカスタムインターフェイスで
返値としてHRESULTを返さないメソッド(BOOLとかを返す)を作ると、

interface IFrameCallup : IUnknown
{
[helpstring("メソッド CallFrame")] BOOL CallFrame();
};

MIDLコンパイラに怒られます。
error MIDL2269 : procedures in an object interface must return an HRESULT : [ Procedure 'CallFrame' ( Interface 'IFrameCallup' ) ]

何がいけないんでしょうか?

43 名前:42 :02/01/28 00:48
インターフェイス宣言にlocalを追加したら通りました。(理由は?)
お騒がせしました。

44 名前:デフォルトの名無しさん :02/01/29 01:40
IMediaPlayerを使ってムービープレーヤーを作ってます。
MFCで CWnd::CreateControl でメディアプレーヤーを起動(?)させています。
再生などは問題なく出来ていますがイベントってどうやって取得したらいいんですか?
_MediaPlayerEvents の PositionChange を処理したいんですけどやり方が分かりません。
QueryInterface でインターフェイスを取得しようとしても失敗します。
というよりイベントのインターフェイスを取得しても意味が無い?
COM初心者です。
MSDNに解説があるのかもしれませんが、どこ読んでいいのか分かりません。
とにかく教えて。

ついでに言うと IRealPlayer も使っているんですがムービーが表示されません。
再生自体は出来ていると思うんですがコントロールパネルが画面一杯に表示されてムービーを表示するウィンドウがありません。
どのメソッドを使えばムービーを表示出来るようになりますか?

昼からずっと考えていますが限界です。
死ぬほど眠いので眠りにつくことにします。
さようなら・・・


45 名前:C++消防 :02/01/29 07:02
質問させて下さい
引数付きのマニピュレータを作りたいのですが
これは可能でしょうか?

具体的には 倍精度を表示する際に
12.3E+001
という表示を
12.3E+01
と,指数部の桁数を変更したいのですが.
よろしくお願いします.

46 名前:デフォルトの名無しさん :02/01/29 14:34
とりあえず、あげ!!!

47 名前:号泣マン :02/01/29 16:44
>>http://pc.2ch.net/test/read.cgi/tech/1006834463/956
どうもありがとうございました。
探してみます。
また、御助言ありがとうございました。

48 名前:ABZ :02/01/29 18:34
>>41
限界ですか・・・ってどういう条件のとき四角で囲まれるのかも
わからないので、7不思議にしときましょうか。

49 名前:デフォルトの名無しさん :02/01/29 19:27
>>40 >>48
単にクラス名が長くて ClassViewのウィンドウに収まっていなければ、
四角で囲まれて(ツールチップで)フルネームが表示される。

ただ、それだけのことじゃないのかな?

50 名前:41 :02/01/29 20:10
すまん、よく読んでなかった。
ClassViewなら>>49の言うとおり。
ちなみにVS.NETβ2だとこのチップをクリックしても関数のところへ飛ばないという仕様だかバグだかわからない感じだ。

51 名前:デフォルトの名無しさん :02/01/30 01:31
クラスがいまいち良くわかりません。

はじめはグローバルで関数を作っていましたが、関数が多くなりそうなのでクラスを作ることにしました。
で、genericクラスで新規作成してそこに関数を入れましたが、
「定義されていない識別子です」とエラーが出ます。

そこで自分なりに調べた結果、関数を呼び出しているソースファイルに
自作クラスのヘッダファイルをインクルードさせたのですが
「'Cxx' : 'class' で示される型としてすでに定義されています」と出てしまいます。
どうすればちゃんと関数を呼び出せるでしょうか?

52 名前:デフォルトの名無しさん :02/01/30 02:10
インスタンスはどこへ消えた?

53 名前:デフォルトの名無しさん :02/01/30 02:43
>>44
>QueryInterface でインターフェイスを取得しようとしても失敗します。
>というよりイベントのインターフェイスを取得しても意味が無い?
>COM初心者です。
どのインタフェースを取得しようとしているか書いてないけど?

DirectShowのヘルプを読んで見たら?
ヘルプだけダウンロードできるよ。

54 名前:51 :02/01/30 03:34
>>52
すいません、初心者なものでそれだけではよくわからないです・・

55 名前:デフォルトの名無しさん :02/01/30 09:05
>>54
コードで、その関数とやらを使っている部分を示せ。


56 名前:51 :02/01/30 14:23
グローバルで作ったものです。
(MainFrm.cpp)
#include "stdafx.h"
#include "(プロジェクト名).h"
#include "MainFrm.h"
(中略)
void CMainFrame::OnFileNew()
{
InitWaveBuff();
(中略)
}

(WaveIO.cpp)
#include "stdafx.h"
#include "WaveIO.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

// バッファの準備
#define NumWaveBuff 4
#define WaveBuffSize 65536

HANDLE m_hHeap;
LPWAVEHDR m_pWaveHdr[NumWaveBuff];
LPSTR m_pWaveBuff[NumWaveBuff];

// バッファの初期化
BOOL InitWaveBuff(void)
{
for (long i=0; i<NumWaveBuff; ++i)
{
m_pWaveHdr[i] = NULL;
m_pWaveBuff[i] = NULL;
}
m_hHeap = HeapCreate(0, 0, 0);

if (! m_hHeap)
{
AfxMessageBox(IDS_HEAPCREATE);
return FALSE;
}
return TRUE;
}

57 名前:デフォルトの名無しさん :02/01/30 15:19
あげ

58 名前:デフォルトの名無しさん :02/01/30 15:23
単に
#pragma once

#idndef hoge
#define hoge
:
#endif
が無いだけちゃうか?

59 名前:デフォルトの名無しさん :02/01/30 15:53
>>44
そいつはCOM→COMのインターフェースなんか?
それで話すけど
イベントを受けるにはAdvise処理しないとイベントは受信できないぞよ。
ATLCOMにはAtlAdviseというATLサポート関数があるから
MSDNで引いてみてね。
受信側はイベントシンクの実装を忘れないでね。
Adviseでシンク側のI/Fポインタを相手に通知して
イベント発行でシンク側が受信するんだよ。
あ、でもこれATLCOMだから
MFCはちょっと違うのかな?参考にならなかったらスマソ


60 名前:デフォルトの名無しさん :02/01/30 16:14
>>56
新規作成したクラスってやつが見当たらないぞ。こいつはひょっとして
(0) はじめにグローバルで関数を作っただけのソース
(1) 「定義されていない識別子です」とエラーが出た時のソース
(2) 「'Cxx' : 'class' で示される型としてすでに定義されています」が出たソース
のうちの(0)じゃないのか? せめて(1)か(2)のソースを見せてくれ。


61 名前:ABZ :02/01/30 17:24
>>49
>>50
ビンゴでした。逝って来ます(T-T

62 名前:APC :02/01/30 20:38
Visual C++ 6 はCで書かれたプログラムをコンパイルできますか?
例えばLinuxのプログラムをコンパイルすることはできますか?

63 名前:デフォルトの名無しさん :02/01/30 20:39
OS依存のところ

64 名前:デフォルトの名無しさん :02/01/30 21:36
>>62
> Visual C++ 6 はCで書かれたプログラムをコンパイルできますか?
できる。

> 例えばLinuxのプログラムをコンパイルすることはできますか?
それは前半と関係ない質問だぞ。Linux にはあるが Win32 にはない関数/システム
コールを使っていたらアウト。

UNIX 系のシステムコールを多用しているプログラムを Win32 で走らせたいなら

1. cygwin を使う
2. VMWare を使う

どっちかが現実的な解と思われ。

65 名前:shige :02/01/30 21:42
Linux用のソフトウェアをWindowsで動かしたいだけなら、こんなものもある。
http://line.sourceforge.net

66 名前:51 :02/01/30 22:12
>>60
(1)の場合です。
(WaveIO.h)
#if !defined(AFX_WAVEIO1_H__1B8DEB60_15C3_11D6_A111_00A0C9E271A9__INCLUDED_)
#define AFX_WAVEIO1_H__1B8DEB60_15C3_11D6_A111_00A0C9E271A9__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "resource.h" // メイン シンボル

class CWaveIO
{
public:
CWaveIO();
virtual ~CWaveIO();
public:
enum {
NumWaveBuff = 4,
WaveBuffSize = 65536
};
public:
HANDLE m_hHeap;
LPWAVEHDR m_pWaveHdr[NumWaveBuff];
LPSTR m_pWaveBuff[NumWaveBuff];

public:
BOOL InitWaveBuff(void);
};

#endif // !defined(AFX_WAVEIO1_H__1B8DEB60_15C3_11D6_A111_00A0C9E271A9__INCLUDED_)
です。あと、>>56
WaveIO.cppでBOOL CWaveIO::InitWaveBuff(void);としました。
MainFrm.cppにCWaveIO.hをインクルードさせました。

どこが抜けているor間違っているでしょうか?



67 名前:51 :02/01/30 22:19
>>56のWaveIO.cppでの変数の宣言等はWaveIO.hに移動させました。

68 名前:デフォルトの名無しさん :02/01/30 23:19
builderのストリンググリッド の機能をVCで使いたいのですが、
VCではどのようなものがあるのでしょうか? 教えてください。
よろしくお願いいたします。

69 名前:デフォルトの名無しさん :02/01/31 10:16
>>66
実際に InitWaveBuff を呼び出すところ。ちゃんと
CWaveIO* hoge = new CWaveIO;
hoge->InitWaveBuff();
みたいにクラスのインスタンスを経由して呼び出してる?

70 名前:telnet :02/01/31 17:51
>64
Very thank you

Vmware 3 でLinux Red Hatを使います

71 名前:次郎 :02/01/31 22:02
Visual C++ 6.0にバグがあると思うのですがみなさんはどう思います?


??=include <stdio.h>
??=if 1
main()??<printf("Hello??/n");??>
??=endif

がコンパイルできないんです。


??=include <stdio.h>
??=if 1
main()??<printf("Hello??/n");??>
#endif

だとコンパイルできるですけれど・・・・・
みなさんはどう思います?
ちなみに??ばっかりですけれど文字化けではありません。




72 名前:デフォルトの名無しさん :02/01/31 22:11
>>71
バグ
VC++.NETでは1つ目コンパイルも実行も出来たよ。

でもそれ何語?

73 名前:72 :02/01/31 22:13
リファレンス見てみたよ・・・
・・・そんなことも出来たんだね・・・知らなかった。
意味なさそうだけど。

74 名前:次郎 :02/01/31 22:14
72>>
C++の言語仕様では#、{、}などの文字は??から始まる文字に置き換えられないといけないらしい

75 名前:デフォルトの名無しさん :02/01/31 22:18
>>71
VC++6 SP5 でコンパイル通ったぞ。

つーか日本にいながら何故トライグラフを使う必要が…。

76 名前:デフォルトの名無しさん :02/01/31 22:21
VCでMFCのフォームつかってんだけど一回だけ処理したい関数は
どこに書いたらいいんでしょうか?

上のほう???

77 名前:デフォルトの名無しさん :02/01/31 22:28
VC++6.0上からはビルド→実行でEXEファイルは問題なく動作するけど、
ふつうにEXEファイルのアイコンをダブルクリックしたら、全く反応が無いんですけど
こういう状態になった人は他にいますかね。
単純ミスかもしれませんけど、解決方法がわかる人がいたらご教授願いたいです。

78 名前:  :02/01/31 23:26
コールバック関数って必要あんの?
システムから呼ばれようがオナジジャネーカヨ。
イミナーイネ

79 名前:トライグラフ :02/01/31 23:39
>>71
また、このネタかよ。
(昔、オイラがIBMの汎用機使ってた頃、その機械のキーボードには
{ とか [ っていう文字が本当になかったのよ )
fortran 走らせる時には問題なかったんだけど、C使おうとして唖然としたもんだ(笑)


80 名前:デフォルトの名無しさん :02/02/01 00:04
>>77
コマンドライン引数が必要なアプリである。に、500argv

つか、MessageBox()トレースすれ。


81 名前:デフォルトの名無しさん :02/02/01 09:41
>>78
自分が理解できないものを、すべて「意味ない」で済ませられるのは、ある意味で幸せ
だな。



82 名前:デフォルトの名無しさん :02/02/01 10:37
age

83 名前:デフォルトの名無しさん :02/02/01 10:43
>>77
カレントディレクトリの問題じゃねーか?
ショートカット作って
EXEファイル
hoge\release\hoge.exe
ワークディレクトリ
hoge\
にしてみ。

84 名前:デフォルトの名無しさん :02/02/01 11:06
>>76
意味不明。
ダイアログの初期化処理をしたいんだったら、普通 OnInitDialog に書く。

85 名前:故意の病 :02/02/01 11:24
MFCのクラスライブラリ表が俺の部屋にはってある。
VC++買ったときは「こりゃ多いな」と思ったが
今日はなんとも言えない気持ち。。。。
この気持ちはなんだろう、もしかして。。。
恋!?、恋なのね、この気分。。
漏れは母になろうと思いました。

86 名前:デフォルトの名無しさん :02/02/01 11:29
とりあえずデバッグ

87 名前:デフォルトの名無しさん :02/02/01 12:14
今までBorlandのBCB++使って、またりとプログラム組んできましたが、
今度、接続する計測器の関係で、VCで汲まざるをえなくなりました。

どっかに、VCを使って、ダイアログベースで、ボタンとかラベルを
ペタペタ貼って、ボタンクリックして、そこにコードを書く、っていう
早い話しが、VBみたくVCを使いこなす、なんていう事が解説してある
サイトないでしょうか?


88 名前:デフォルトの名無しさん :02/02/01 12:53
えと、VCでDLLとか、COMとかつくれば解決するような
気がしますが、そういう話ではないのですかね?

89 名前:デフォルトの名無しさん :02/02/01 12:56
>87
UIだけBCBで作れば?

90 名前:77 :02/02/01 13:19
ありがとうございました。
問題が解決しました。

91 名前:富士の病 :02/02/01 14:19
モーニング娘。のプロフィール表が俺の部屋にはってある。
娘。ファンになったときは「こりゃ多いな」と思ったが
今日はなんとも言えない気持ち。。。。
この気持ちはなんだろう、もしかして。。。
恋!?、恋なのね、この気分。。
漏れは母になろうと思いました。


92 名前:デフォルトの名無しさん :02/02/01 14:54
たいしておもしろくないから流行らないと思うよ。

93 名前:もにょ :02/02/01 16:50
Windows 9x において現在接続されている HDD / CD-ROM / IDE コントローラ
などのハードウェア名情報はどのように取得すればよいのでしょうか?
レジストリエディタで検索してみると当然みつかりますが、
環境によって場所が違うようです。
となると、どこかに、「どこそこに情報がある」というまとめ役のキーがあると
思うのですが、見つけることは出来ませんでした。

94 名前:デフォルトの名無しさん :02/02/01 22:41
SJIS、EUC、JIS、マルチバイト、ユニコード・・
ぜんぜんわからん。
_ismbblead()?なんか上手く動いてないよ・・
漢字コードの仕様もわかんねぇしわけわからん用語ばっかりが羅列されてるMSDN

漢字かどうかの判定ってどうやるんだ!?
しかもこの場合漢字ってひらがなとかカタカナも含むのかよ!!
要は漢字だろうが仮名だろうが2バイト文字を判定するにはどうしたらいいのだーーーー

教えてちょ!

95 名前:デフォルトの名無しさん :02/02/01 22:46
昔おれのいたDQNな会社の先輩たちは、
「半角全角」とか「XXコード」みたいな言葉を知らなくて、
全角のひらがを「漢字のひらがな」「漢字のかたかな」
っていってたんだよな。
ちょっと思い出してしまった。

96 名前:デフォルトの名無しさん :02/02/01 23:14
VD++6.0でClistBoxを使っているのですが、
リストを選択した状態でエンターを押した時に
エディットボックスに、選択状態のリストの文字列を送ってやりたいのですが、
リストの項目番号を取得することもエンターを検出することも出来ません。

どうやったらいいのでしょうか?

97 名前:デフォルトの名無しさん :02/02/01 23:18
>>95
むしろ「半角」「全角」の方が不正確。
つーか、技術者として如何なものか。

98 名前:デフォルトの名無しさん :02/02/01 23:24
>>97
「むしろ」ということは、「漢字のひらがな」が正確だとでも?

99 名前:デフォルトの名無しさん :02/02/01 23:41
>>98
そ。「JIS X0208 という漢字セットの中のひらがな」。

100 名前:デフォルトの名無しさん :02/02/01 23:50
100

101 名前:94 :02/02/02 00:02
だれか詳しく教えてくらはい。
資料でもいいしサイトでもいいのでおねがいします

102 名前:デフォルトの名無しさん :02/02/02 00:06
google

103 名前:デフォルトの名無しさん :02/02/02 00:10
>>98
漢字 = 漢字(文字圏) = MBCS文字圏
かもしれないじゃないか。すげぇよ!その共通理解。

104 名前:デフォルトの名無しさん :02/02/02 00:32
>>96
ダイアログだったら、ENTERキーが押されるとIDOKが送られる。
OnOK()の中でフォーカスの位置を調べて、リストボックスに
フォーカスがあったらENTERキーの処理をする、というのではどうか。

105 名前:94 :02/02/02 00:42
おまえらじつは詳しくないのか?
聞いても無駄かな・・

106 名前:デフォルトの名無しさん :02/02/02 00:45
>>98
半角、全角はもともと文字の横幅をあらわしたもの。
JISだかで偶然(意図的に?)半角文字が1バイトに、全角文字が2バイトに割り当てられただけ。

107 名前:デフォルトの名無しさん :02/02/02 01:13
>>94
まずどんなコード書いたら_ismbbleadがうまくいかなかったのか書いた方がいいと思われ。
文字列の中から先頭バイトを引っこ抜いてやるとうまくいかないと思った。

108 名前:94 :02/02/02 01:41
>>107
文字列の任意の場所から1バイト持ってきて漢字(2バイト文字)か1バイト文字か調べようとした。
なんかちゃんと判定できない奴とかあった。

109 名前:デフォルトの名無しさん :02/02/02 01:46
char hoge[] = "ほげほげ";
の文字列に対して、
if(_ismbblead(hoge[2]))
ならいいけど
char hoge = hoge[3];
if(_ismbblead(hoge))
ならまずいんじゃなかったっけ



110 名前:デフォルトの名無しさん :02/02/02 01:47
>>94
つーか、文字コード何だよ?Shift JIS なら
> 文字列の任意の場所から
判るわけないだろ。

111 名前:デフォルトの名無しさん :02/02/02 01:48
>>108
SJISの場合原理的に不可能だそれは。

112 名前:94 :02/02/02 01:56
つまりその原理が知りたい。
俺は「便利な関数がありますよ!」だけいうMSは嫌い。
原理を知らずに関数など使えない。

でも資料がない。

SJIS教えて?以前みたソースでIsKanji()みたいなマクロがあって
それは任意の場所のcharを見て判断してたよ。
ウソクサっと思ったけどウソという確信も持てないし。


113 名前:SJIS :02/02/02 02:01
char[任意の場所] と、char[任意の場所-1]の符号を見れば、
区別つくんでない?

114 名前:デフォルトの名無しさん :02/02/02 02:05
>>113
つかない。
文字列先頭か、あらかじめトレイルバイトじゃないとわかってるところから始めるのが現実的。

115 名前:デフォルトの名無しさん :02/02/02 02:06
本当に資料が無いのだろうか。
俺は検索もせずに「教えて」だけいう厨房は嫌い。

116 名前:デフォルトの名無しさん :02/02/02 02:07
>>113
char[任意の場所] が英数の範囲内で、char[任意の場所-1]がSJISの
1バイト目、2バイト目の共通部分だったらどう判断するの?


117 名前:94 :02/02/02 02:09
>>115
すまん。一応検索したんだがたくさん引っかかってメンドくなって・・
2chで聞いた方がたいがい早いし。


118 名前:デフォルトの名無しさん :02/02/02 02:11
>>117
全然原理を知る気ないやん。
黙ってMSの便利な関数使ってれ。

119 名前:デフォルトの名無しさん :02/02/02 02:12
おとなしく_ismbslead使え

120 名前:94 :02/02/02 02:14
ちなみに以前見たソースってのは

0x81〜0x9f
0xe0〜0Xfc
は漢字って判定だった。


121 名前:113 :02/02/02 02:24
スマソ。詫びにこんなのを見つけた。

int IsLegal(const char *s){
  unsigned char u=*s, v=*(s+1);
  return ( ((0x81<=u && u<=0x9F) || (0xE0<=u && u<=0xFC))
    && ((0x40<=v && v<=0x7E) || (0x80<=v && v<=0xFC)) );
}
あとは漢字コードとにらめっこして納得すれば、IsKanji()も何をやってるのか
か分かるね。

122 名前:94 :02/02/02 02:28
>>121
サンクス。感謝感激

でもSJIS任意の位置からは原理的に無理って意見もあるし、
このIsLegalのsは先頭のアドレスって限定した使い方なのかな。


123 名前:119 :02/02/02 02:32
_ismbsleadはだめなのか?

124 名前:94 :02/02/02 02:35
>>123
_ismbbleadは先頭から順に調べないとダメらしいのですが、
それも別のところで聞きかじっただけです。

よってダメじゃないかもしれないけど。なんかこういう不確かな情報を払拭する
「これだーーーーー」ってのが無いかなぁ

125 名前:デフォルトの名無しさん :02/02/02 02:51
>>124
_ismbsleadはまさに「先頭から順に調べないとダメ」を体現してる気がするけどなぁ。

126 名前:デフォルトの名無しさん :02/02/02 03:10
なんだ只のバカかよ。ツマンネ


127 名前:94 :02/02/02 03:23
どうやら先頭から調べなきゃいけないで決まりらしい。
ってことは結構インチキ判定ロジックがちまたにゃあふれてんじゃねーか。
つーか、あ^−−−−−−この「らしい」ってのがゆるせん。
なんだよ「らしい」って
なんだよ「らしい」って
なんだよ「らしい」って
なんだよ「らしい」って
なんだよ「らしい」って
結局俺は糞みたいな半端な知識止まりらしい。ウザ

128 名前:デフォルトの名無しさん :02/02/02 03:33
「どうやら先頭から調べなきゃいけない」←これが「原理」かよ。
少しは頭使えよ。考えたらわかるだろ。


129 名前:デフォルトの名無しさん :02/02/02 03:39
>128
94が考えてもわからないことぐらい考えたらわかるだろ。

130 名前:デフォルトの名無しさん :02/02/02 04:01
表とか坂とかね。

131 名前:98 :02/02/02 04:09
ハァ…ヤレヤレ
半角、全角については、2バイト半角が現れたPC-9801の時代に終わってるよ。
でも、「漢字のひらがな」がどれほど正確なんだ?
つか、みんなネタか?

132 名前:94 :02/02/02 04:10
うんうん。やっぱ文字コードの仕様は糞だな。
それは確かだ。

133 名前:デフォルトの名無しさん :02/02/02 06:20
CreateThread()で作ったスレッドからCランタイムライブラリの関数呼ぶと
メモリリークが起こるんですよね?(と、MSDNライブラリに書いてある)
ではnewも出来ないのでしょうか? なんとなく中でmalloc()してそうだし。。。

# だめなら _beginthread() 使います

134 名前:133 :02/02/02 07:20
役に立つかどうかわりませんが。
# Shift JIS 限定の話です
Shift JIS は以下の三つの文字集合を使います。
(1) JIS X 0201 のラテン文字集合部分
(2) JIS X 0201 のカタカナ文字集合部分
(3) JIS X 0208 の文字集合
JIS がついているところから分かるように、これらは JIS規格で決まっています。
どのような文字が定義されているかというと、
(1) 1バイトのアルファベットや記号
(2) いわゆる半角カナ
(3) 2バイトのアルファベットや記号や漢字

これらに一文字ずつ区別がつくようにコードを振ることをエンコードといいます。
Shift JIS の場合、
(1) 0x21〜0x7E
(2) 0xA1〜0xDF
(3) 1バイト目 0x81〜0x9Fまたは0xE0〜0xFC、2バイト目 0x40〜0xFC(ただし0x7Fを除く)
となっています。ここから分かるのは
・(1)と(2)はすぐに区別が付く
ということです。これは Shift JIS が出来たときの事情がからんでいるのですが。
しかし、(3)に対しては
・1バイト目は(1)、(2)ともにかぶらない
・しかし2バイト目は(1)、(2)とかぶっている
という問題があります。
ですから、ある位置の1バイトが(3)の一部かどうか判定するには、
「0x40より大きくて、(3)の2バイト目と(1)(2)のどちらか区別が付かない場合は、
さらに一つ前の1バイトを読み込んで、(3)の1バイト目かどうかを調べる」
というのが正解です。


135 名前:デフォルトの名無しさん :02/02/02 08:16
>>134
SJIS はバイト列の途中から読もうとすると面倒だけど、頭から読むなら isleadbyte() が
真なら 2 バイト文字の 1 バイト目、そうでなければ 1 バイト文字、で簡単に判別できる
よね。

そもそも文字コードが SJIS かどうか分からん場合には、文字コードを統計的に推測す
るしかない。方法に関しては nkf のソースでも読んで研究して見てくれ。

136 名前:デフォルトの名無しさん :02/02/02 12:08
> そ。「JIS X0208 という漢字セットの中のひらがな」。

だから「漢字のひらがな」という言い方が正しい?
こいつバカですか?


137 名前:デフォルトの名無しさん :02/02/02 12:41
>>136
少なくとも「漢字のひらがな」よりは「全角のひらがな」のほうが100倍ましだと漏れも思う。

138 名前:デフォルトの名無しさん :02/02/02 12:52
>JIS X0208 という漢字セット
0点。じゃあ、「漢字のアルファベット」に、
「漢字のキリル」か。おめでてーな。


139 名前:デフォルトの名無しさん :02/02/02 15:57
>一つ前の1バイトを読み込んで、(3)の1バイト目かどうかを調べる
実は、そこは2バイト目という罠

140 名前:デフォルトの名無しさん :02/02/02 16:00
>>116でソトデという罠

141 名前:94 :02/02/02 18:27
>>133
おおおーーすばらしい・・・
丁寧にありがとうございます。やっと理解できました。
早速my資料に追加・・とφ(.. )カリカリ・・

142 名前:デフォルトの名無しさん :02/02/02 19:01
> 一つ前の1バイトを読み込んで、(3)の1バイト目かどうかを調べる
実は調べたいのは文字列の最初の文字で、一つ前のバイトなど存在しないと言う罠

143 名前:デフォルトの名無しさん :02/02/02 19:01
「半角って何ですか?」 by void

144 名前:デフォルトの名無しさん :02/02/02 19:11
CListBoxで
リストのうちの何番目かを
指定して反転表示させたいのですがよくわかりません。




145 名前:デフォルトの名無しさん :02/02/02 19:14
まずgoogれ、話はそれからだ

146 名前:デフォルトの名無しさん :02/02/02 19:17
>>143
半角板

147 名前:133 :02/02/02 19:29
>>139
そのときは、1回目に読んだ1バイトは(1)または(2)だったことが分かります。

148 名前:デフォルトの名無しさん :02/02/02 19:44
>>147
1つ前が(3)の2バイト目だったのか、(3)の1バイト目だったのかは、
文字列の頭から見ていく以外に確かめる術は無いのです。

例) 0x9B .......... 0x9B 0x9B 0x44 0x44 の後ろから2個目の0x44を判定せよ。

149 名前:デフォルトの名無しさん :02/02/02 19:44
>>147
1バイト目と2バイト目が両方とも_ismbblead()==trueのマルチバイト文字が延々と続いてるときはどうするんですか?
どこを文字列の先頭とするかでコードの解釈が180度変わります。
途中だけ見て判断するのは不可だね。

150 名前:133 :02/02/02 20:29
>>148 >>149

まったくもってその通りです。
(3)の1バイト目か2バイト目か判別出来ないときは
さらに1つ前の1バイトを……というのを、識別出来るまで
延々とやらなければいけないですね。

嘘言っちゃってゴメン


151 名前:デフォルトの名無しさん :02/02/02 20:40
つか、wchar_tつかえよ、、、

152 名前:_ :02/02/03 01:00
VCのスタンダード版は静的リンクができないけど、コンパイルしたプログラムは
他人のパソコンでも動きますか?MFCのDLLが必要なのですか?


153 名前:デフォルトの名無しさん :02/02/03 01:03
>>152
まあ、だいたい大丈夫だね。
たまーに動かない人がいるみたいだけど。

154 名前:なんかねぇ :02/02/03 02:12
VC++5.0エンタープライズ版
を使っていますが、6.0を買いなおした
方がいいですか?




155 名前:デフォルトの名無しさん :02/02/03 02:17
いまVC6を買うのはただのばかだなぁ

156 名前:デフォルトの名無しさん :02/02/03 02:56
>155に同意

Web系だと不便かも知れないけど
そうじゃなけれ5.0で良いのでは?

157 名前:デフォルトの名無しさん :02/02/03 07:42
質問です。
現在 Win32 console application を作っているのですが、
現在のコードページに対応(_getmbcp())して表示させるヘルプを日本語と英語で分けようと考えてます。

次のようにコーディングしたんですが、

switch (_getmbcp())
{
case 932: lang = LANG_JA_JP; break;
default: lang = LANG_EN_US; break;
}
printf("code page = %d\n", _getmbcp()); /* debug のため表示 */

コマンドプロンプトで us して実行しても 932 になってしまいます。
chcp をオプションなしで実行すると
Active code page: 437
と表示されるのですが…
どうすれば _getmbcp() できちんとコマンドラインの状況を判断できるでしょうか。


158 名前:デフォルトの名無しさん :02/02/03 07:44
>>157
訂正。日本語が変でした。

>どうすれば _getmbcp() できちんとコマンドラインの状況を判断できるでしょうか。

どうすればきちんとコマンドラインで設定されているコードページを取得できるでしょうか。



159 名前:デフォルトの名無しさん :02/02/03 10:21
VC6.0の調子がおかしくなってしまいました。
通常、ワークスペースを開くと、ClassViewにクラスとメンバの一覧が
表示されますが、それが表示されなくなってしまいました。
また、ビルドを行おうとしてもできなくなりました。
但し、この現象が起きるのは最近、新規作成されたワークスペースに
ついてであり、昔作っていたワークスペースでは
問題なく表示され、ビルドも可能です。

私なりに問題点を調べてみたのですが、どうもdpsファイルの中の
TargetのSource Fileの部分で、問題あるワークスペースの方で、
# PROP Exclude_From_Scan -1
# PROP BASE Exclude_From_Build 1
# PROP Exclude_From_Build 1
という3行が挿入されていました。
この現象について何かご存知の方おられましたら教えて下さい。

160 名前:デフォルトの名無しさん :02/02/03 10:52
>>159
おいらも時々なるかも。

いくつか要らない(と思われる)ファイルを消して起動しなおせば直るんだけど,フォルダ
作ってたらそれも作り直しなので安全な修正方法あれば漏れも知りたい。


161 名前:157 :02/02/03 12:29
>>157-158
自己解決しました。
GetConsoleCP() 使ったらうまくいきました。

ちょっと Win95 でどうなるか不安ですが…
http://www.microsoft.com/japan/developer/library/jpwinpf/_win32_getconsolecp.htm


162 名前:デフォルトの名無しさん :02/02/03 14:19
CListBoxで
リストのうちの何番目かを
指定して反転表示させたいのですがよくわかりません。






163 名前:デフォルトの名無しさん :02/02/03 16:11
>>162
そうですか。

164 名前:デフォルトの名無しさん :02/02/03 16:22
>>162
答えはヘルプファイルにあります

165 名前:デフォルトの名無しさん :02/02/03 18:30
あの、InternetExplorerでプラグインとして使えるActiveXをVC++で作るにはどうすればいいんですか?


166 名前:デフォルトの名無しさん :02/02/03 18:31
>>165
InternetExplorer.hをインクルードする

167 名前:デフォルトの名無しさん :02/02/03 18:39
fatal error C1083: インクルード ファイルがオープンできません。'InternetExplorer.h': No such file or directory

168 名前:デフォルトの名無しさん :02/02/03 19:36
>>168
include/InternetExplorer.hをインクルードする

169 名前:デフォルトの名無しさん :02/02/03 19:48
atal error C1083: インクルード ファイルがオープンできません。'include/InternetExplorer.h': No such file or directory

170 名前:デフォルトの名無しさん :02/02/03 19:49
インクルードって、リンクファイルじゃなくてIncludeですか?

171 名前:デフォルトの名無しさん :02/02/03 19:56
みっともないのでネタはやめてくださいね

172 名前:デフォルトの名無しさん :02/02/03 20:02
あの、上の方の冗談(?)はとにかく本当に #include "include/InternetExplorer.h"でファイルオープン不可のエラーが出るのですが…。

173 名前:デフォルトの名無しさん :02/02/03 20:11
まずそんなファイルがあるかどうかPC内検索してみろよ

174 名前:デフォルトの名無しさん :02/02/03 20:20
>>173
次に MSDN ライブラリを BHO で検索だな。

175 名前:デフォルトの名無しさん :02/02/03 20:21
ないです…。VC++以外のものをインストールする必要があるんすか?

176 名前:152 :02/02/03 21:52
>>153
お答えくださってありがとうございます。


177 名前:デフォルトの名無しさん :02/02/03 22:03
Unixかなんか向けに作られたプログラムをVCでコンパイルしようとすると
#include <sys/time.h>をオープンできませんってエラーが出ます。
その他に
struct timeval start, end; や
gettimeofday(&start,0);
random()
の行のところで定義されてないのを使っているとエラーが出ます。
VCでそういうのが定義されているヘッダファイルとライブラリはないのですか?
プログラムの実行時間を計るために使われている(randomは違うけど)は分かるけど
具体的にどうしたらいいか分かりません。
お願いします。

178 名前:デフォルトの名無しさん :02/02/03 22:10
>165
まず、COMというものの知識をつけてください。
その後、VC++を起動し、新規作成→プロジェクト→ATM Com App Wizard→銀行→ATM→(゜Д゜)ウマー

179 名前:デフォルトの名無しさん :02/02/03 22:15
OS依存の部分を
すべてなおすナリ

180 名前:デフォルトの名無しさん :02/02/03 22:15
VC++を起動し、新規作成→プロジェクト→KFC AppWizard(exe)→ドラゴンツイスター頼む→(゜Д゜)ウマー

181 名前:デフォルトの名無しさん :02/02/03 23:05
VC++を起動し、新規作成→プロジェクト→MFC AppWizard(exe)→CVSup→make world→signal11でへくった(゜Д゜)マズー


182 名前:login:Penguin :02/02/04 21:35
イベントで
Becky2を起動して
特定のアドレスに
メールを送信する
というプログラムを書きたいのですが、
アドバイスお願いします。


183 名前:デフォルトの名無しさん :02/02/04 21:38
>>182
どっかで見たことあるよな・・・マルチ?
どうでもいいけどどんなアドバイスがほしいのか書けよアフォ。こちとらエスパーじゃねーんだからさ。
全部とか言うなよ。

184 名前:デフォルトの名無しさん :02/02/04 23:20
すいません。
クラスでの関数ポインタ配列について教えて下さい。

================================
class testClass{
private:
  void (*pArFunc[2])(); //関数ポインタ配列
public:
  void Func();
  void Func0();
  void Func1();
};
void testClass::Func(){
  void (testClass::*pArFunc)()  = Func0; //OK...@
  void (testClass::*(pArFunc+1))() = Func1; //駄目...A
}
void testClass::Func0(){}
void testClass::Func1(){}
================================

上の@のコンパイルが大丈夫だったので、Aを試したのですが、
"構文エラー : ')' が '<tag>::*' の前に必要です"
というエラーが出てしまいます。
クラスで関数ポインタ配列を使用する場合はどうしたら良いのでしょうか?



185 名前:デフォルトの名無しさん :02/02/04 23:21
[section]
aa=あいうえお
bb=かきくけこ
cc=さしすせそ

GetPrivateProfileStringの2番目の引数(Key)にNullを指定すると
GetPri(略)で指定したbufにKeyが全て入ってくるとヘルプファイルに書かれているのですが、
=より後ろ(あいうえお)等の文字列はどこへいってしまうのでしょう?

あと、全てのkeyとそれに対応するStringを検索して表示させたいのですが、
何かいい関数はないでしょうか?

できれば例も、、、






186 名前:デフォルトの名無しさん :02/02/04 23:36
keyを貰ったんなら、それをつかって、
GetPriv...を回せばいいのでは?

187 名前:デフォルトの名無しさん :02/02/04 23:43
>184
ずいぶん邪悪なキャストですね....

class testClass{
private:
void (testClass::*pArFunc[2])(); //関数ポインタ配列
public:
void Func();
void Func0(){}
void Func1(){}
};
void testClass::Func(){
*(pArFunc+0) = Func0;
*(pArFunc+1) = Func1;
}

188 名前:デフォルトの名無しさん :02/02/04 23:52
標準ライブラリを使いたくないのですが
va_list
va_start
va_end
の代わりにになるWin32Apiってあるんですか?


189 名前:デフォルトの名無しさん :02/02/04 23:55
VC++では、va_*はマクロです。
ちゃんとヘッダを覗きましょう。
そして、APIで実現されようがないことを
理解しましょう。

190 名前:デフォルトの名無しさん :02/02/05 00:33
クラスをエクスポートしたと思われるDLLを無理矢理使う方法知ってるひといませんか?
ダンプしたのはこんな感じ

00001090 1 0000 ??0audioRemCon@@QAE@XZ
00001160 2 0001 ??1audioRemCon@@UAE@XZ
000030F8 3 0002 ??_7audioRemCon@@6B@
000012E0 4 0003 ?CloseAudioCtlDriver@audioRemCon@@QAEXXZ
000011C0 5 0004 ?GetAudioCtlDriverName@audioRemCon@@QAEHXZ

あと名前変形はいったいどういう規則で行われてるのやら……

191 名前:デフォルトの名無しさん :02/02/05 00:39
自分でaudioRemConクラスの定義を捏造、ダミーメソッドでexport。
尚、メンバ変数は、char dummy[2000]などで代用しておくこと。
それと、メソッドの型情報は自力で復元すること。

できあがったlibを使用して、リンク。元のdllを使用。


192 名前:184 :02/02/05 00:44
>>187様様
コンパイルできました。
ありがとうございます。
助かりました。

193 名前:デフォルトの名無しさん :02/02/05 00:54
>>189
ありがとうございます。
もう1つひつもんなのですが
vsprintf等は標準関数?みたいなのですが
これはLIBCをLINKしなくても良いのでしょうか?


194 名前:デフォルトの名無しさん :02/02/05 00:59
vsprintfは標準関数。
WIN32APIならwvsprintf使え。

195 名前:185 :02/02/05 06:46
keyはわからない状態で検索しないといけないんです。

196 名前:デフォルトの名無しさん :02/02/05 07:32
Here are fill of silly.

197 名前:185 :02/02/05 07:32
>>186
すんません。
実は検索したキーの入り方がよくわからないんです。

198 名前:デフォルトの名無しさん :02/02/05 08:48
>>194
ありがとうごさいます。
好きです。大好きです。

199 名前:デフォルトの名無しさん :02/02/05 11:29
わらをもすがる思いです。どなたか教えてください。
ドキュメント/ビューアーキテクチャで、ドキュメントの方にメッセージを
飛ばしたいんですが、できるんでしょうか?メニューからは飛んでくるので
できると思うんですが。ウィンドウハンドルはどうやってとったらいいんでしょう?

200 名前:デフォルトの名無しさん :02/02/05 12:16
>>199
普通はViewにメッセージが飛んできて、
それをドキュメントにつたえるという形になると思うが...

201 名前:デフォルトの名無しさん :02/02/05 16:45
質問があります。
メイン画面から別のダイアログを表示した場合に、
メイン画面を非表示にするとタスクバーボタンも消えてしまいます。
タスクバーボタンを表示する方法はないのでしょうか?
いろいろ調べてみましたが、どうしてもわからないので、
誰か教えてください。
よろしくおねがいします。

202 名前:デフォルトの名無しさん :02/02/05 17:29
>201
ShowWindowで最小化するか、MoveWindow他でサイズ0のウィンドウにするか。

203 名前:デフォルトの名無しさん :02/02/05 17:29
あぼーん

204 名前:デフォルトの名無しさん :02/02/05 17:42
>>201
ダイアログに拡張スタイル WS_EX_APPWINDOW を指定する、とか。

205 名前:201 :02/02/05 18:28
>>202
>>204
返事ありがとうございました☆
早速参考にして、いろいろ試してみようと思います。
一人で考えていると、考え方が偏ってしまってダメですね・・・。

206 名前:デフォルトの名無しさん :02/02/05 18:47
ダイアログアプリケーション(MFC)で
ウィンドウ全体にビットマップ(リソース)を貼り付けるには
どうしたらよいのでしょうか。
どうしてもシステムメニューの上にまで
ビットマップを貼り付けることができません。

207 名前:デフォルトの名無しさん :02/02/05 18:52
>206
GetClientRectでウインドウの長さつかまえてデスクとっぷのDCゲットしてClientToScreenで現在地を得て描け。

208 名前:デフォルトの名無しさん :02/02/05 18:55
>>206
タイトルバーが必要ないなら消しちゃえば。

209 名前:デフォルトの名無しさん :02/02/05 19:00
>>206
GetWindowDC()

210 名前:デフォルトの名無しさん :02/02/05 19:14
>>206
WM_NCPAINT

211 名前:206 :02/02/05 19:34
できました。
ありがとう。

212 名前:デフォルトの名無しさん :02/02/05 20:24
>>211
せめてどうやって出来たのか書け、
いくらここが2chでも最低限の礼儀は守ってくれ。
技術系MLに行ったときにはもっと注意してくれよ。

213 名前:206 :02/02/05 21:18
すみません。こんな風にやってみました。

HBITMAP hbm = (HBITMAP)::LoadImage(NULL,
"ビットマップファイル名", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION );
if(hbm == NULL)return;
CDC* pMemDC = new CDC, *pDC = GetWindowDC();
CBitmap* pBitmap = CBitmap::FromHandle( hbm );
BITMAP bm;
CRect rcRect;
GetClientRect(rcRect);
pMemDC->CreateCompatibleDC(pDC);
CBitmap* pOldBitmap = (CBitmap*)pMemDC->SelectObject(pBitmap);
pDC->BitBlt(0, 0, rcRect.right, rcRect.bottom, pMemDC, 0, 0, SRCCOPY);
pMemDC->SelectObject(pOldBitmap);
pMemDC->DeleteDC();
delete pMemDC;
::DeleteObject( hbm );

214 名前:043 :02/02/05 22:15
VC6.0で作成したプログラムに、ACCESSで作ったデータベースを
ODBCでつなげたいんですけれども。

以前に、作成したプログラムに ACCESSをつなげるにはどのような
手順でやればいいのでしょうか?

ACCESS単品のODBCのつなげ方はわかるのですが・・・
既存のプログラムにデータベースサポートのつけ方どうか
教えてください!!調べてもなかなかみつからなくて 泣

お願いします!


215 名前:SAVE :02/02/05 23:08
リストボックスをシングルクリックした時にクリックした場所の項目番号を取得したいのですが、
ダブルクリックした時の項目番号しか取得できません。

どうやって取得したらいいのでしょうか。
適当に教えてください。

216 名前:デフォルトの名無しさん :02/02/05 23:12
>215
GetCurSel() ?

217 名前:デフォルトの名無しさん :02/02/05 23:23
以前までビルドするのはその際に書き換えたソースだけビルドしていたのに何故か昨日から急に
どんなことがあっても毎回全ソースをビルドするようになりました。コンパイル実行した直後にもう一度
コンパイルしようとしてもまた全てビルドしようとします。VC++の再インストールも試みましたが結局
症状が治ることはアリマセンでした。
どうすればこの症状が治せますでしょうか・・・よろしくお願いします。

218 名前:デフォルトの名無しさん :02/02/05 23:33
うぜーーーーーーーーーーーーーーーーーーーーーーーー

219 名前:>>219 :02/02/05 23:52


220 名前:デフォルトの名無しさん :02/02/06 03:00
>>217
押すボタン間違えてんだろ

221 名前:217 :02/02/06 03:15
F7押してからCtrl+F7でも駄目なんです・・・。
Ctrl+F7で実行してから終了後、すぐにCtrl+F7押しても駄目です。ビルドされてないとでます。

222 名前:デフォルトの名無しさん :02/02/06 03:32
>>217
Makefileというかプロジェクトのファイル壊れたんじゃないのか?
もう一度プロジェクトを作りなおしてみれ。

223 名前:217 :02/02/06 04:20
プロジェクトも作り直してみましたが駄目です・・・ためしにProjectつきのサンプル等をWeb等から落としてきた後
コンパイルしてもやはり毎回全ビルドします・・・。うあ・・・。

224 名前:デフォルトの名無しさん :02/02/06 04:37
>>217
マシンの時計が狂ってるとか

225 名前:デフォルトの名無しさん :02/02/06 06:42
MFCでドキュメントクラスに、
ダイアログバー上にあるコンボボックスのメッセージハンドラ作ったんですが、
値を読むのって、フレームウィンドウからコントロールを取得しないと駄目なの?
それともハンドラはフレームウィンドウに作って、
ドキュメントクラスの処理関数呼ぶのが正しいのかな?

226 名前:SAVE(215) :02/02/06 08:03
>>218
すいません

227 名前:デフォルトの名無しさん :02/02/06 10:09
>217
時計が狂ってるんじゃないのか

228 名前:デフォルトの名無しさん :02/02/06 11:58
>>200
ありがとうございます。そうですね、設計がヘンだと思います。
*Docにもメッセージが飛ばせるとおもったのですが。
もうちょっとドキュメント・ビューアーキテクチャを勉強しないと・・・
でも、メニューから飛んでくるのはどうしてなのでしょうね??

229 名前:デフォルトの名無しさん :02/02/06 23:04
>217
俺の隣に座っている人も、これに、はまってたよ。
でも、全プロジェクトじゃなくて、特定のプロジェクトだけ。
.dswとか見ても、特に変わったとこないし、.ncbやら.optやらを消しても直らない。
タイムスタンプも時計も異常なしで、もちろんアクセス権とかの問題でもない。
「駄目だこりゃ」ということで、そのときは放っておいたんだけど。

もしかしたら、HKCUの DevStudioのレジストリキーを一旦削除かなんかしてみると、
直るかも。

230 名前:デフォルトの名無しさん :02/02/07 02:21
インストールしていないフォントファイルからフォント名を取得するには
どうすればよいのでしょうか?

231 名前:デフォルトの名無しさん :02/02/07 02:26
getsystemmetrix

232 名前:デフォルトの名無しさん :02/02/07 02:32
>>231
誤爆?

233 名前:デフォルトの名無しさん :02/02/07 03:32
VC++ で使えるフリーの ActiveX コントロールを探しています。
具体的には「Microsoft Forms ...」コントロールのような
標準コントロールライクなものやグリッドコントロールを探して
います。Vector とかで探したら何個かはありましたが、試して
みると VC++ で使えませんでした。
ご存知でしたらそのサイトを教えて頂けないでしょうか?
どんな些細な情報でも構いませんのでよろしくお願いします。


234 名前:217 :02/02/07 04:53
何故かこのスレをチェックした後、229さんの方法を試す前にテストしてみようと思ったら治ってやがりました。
昨日寝る前に224、277さんの助言通りTClockで時計合わせてみたのですがその直後は全然駄目だったんですけど・・・。
まぁ治ってよかったです。ありがとうございました。

235 名前:201 :02/02/07 11:08
>>202
>>204
遅くなりましたが・・・
最小化する方法にしました。
でも、最小化するとWin98SEの時だけ別ウィンドウが一番下に
表示されてしまうんですが・・・。
そういうものなんでしょうか??
もしかしたら、他のOSでは偶然ならなかっただけかもしれませんね。
あまり気にしないことにします。

236 名前:デフォルトの名無しさん :02/02/07 11:10
>>235
最小化しなくても画面外に出しちゃえば?

237 名前:201 :02/02/07 11:16
>>236
なるほど・・・そういう方法もありますね。
試してみますね。

238 名前:海太郎 :02/02/07 14:01
VC初心者です。ちょっとわからないことが出来たので書き込みさせて
いただきます。

ダイアログ上のスタティックテキストの色の変更をしたいのですが、
方法がわかりません。
InitInstanceでSetDialogBkColorを使えばすべてのダイアログの
表示を変えることが出来るのですが、ひとつだけダイアログの文字色
を変えたいのです。

すみませんが、よろしくお願いします。
レスポンス、お待ちしています。

239 名前:デフォルトの名無しさん :02/02/07 14:46
>>238
http://www.expertmg.co.jp/html/cti/vctips/control.htm

240 名前:230 :02/02/07 16:49
もう一度。
インストールしていないフォントファイルからフォント名を取得するには
どうすればよいのでしょうか?


241 名前:デフォルトの名無しさん :02/02/07 17:03
>240
LoadLibrary して EnumResourceNames→FindResource→LoadResource のコンボ
後はゴリゴリ解析するんだと思う。

242 名前:女性社員 :02/02/07 17:11
あのーVCでDAOとか使ってデータベース操作などをしている人って
いますでしょうか。
VBでは参考資料が豊富にあったのですが、VCだと全然ありません
参考にあるような本やサイトがあったら教えてください。

243 名前:  :02/02/07 17:36
http://www.microsoft.com/japan/developer/library/vccore/_core_dao_and_mfc.htm

244 名前:デフォルトの名無しさん :02/02/07 18:53
>>241
フォントファイル(.ttfなど)をLoadLibraryするんですか??

245 名前:デフォルトの名無しさん :02/02/07 20:22
APIオンリーで組んでます。
初心者な質問ですが許してください(;´∀`)

VC++はNNなど、メニューバーから各項目にフォーカスを当てたとき
ステータスバーにその項目の機能について簡単な説明が出ますよね?
この機能をつけたいのですが、フォーカスが当たったときにどういったメッセージが
送られてくるのかが分かりません。
どなたか教えていただけないでしょうか?


246 名前:デフォルトの名無しさん :02/02/07 20:37
ネット越しに相手のPCのネスケを起動するのはどうすればいいでしょうか?
APIみたいのを探してみたんだけど、分かりませんでした。
よろしくお願いします…。

247 名前:デフォルトの名無しさん :02/02/07 20:38
>>246
ネタは sage でな。

248 名前:デフォルトの名無しさん :02/02/07 20:38
>>246
Windowsのセキュリティーホールを探して下さい。

249 名前:デフォルトの名無しさん :02/02/07 20:43
246の者です。
ネタではありません。Cは初めてなのでよく分かりません…。
やはりAPIは無理なのでしょうか?

250 名前:デフォルトの名無しさん :02/02/07 20:44
「トロイ バックドア バックオリフィス」でゴグルすれ


■過去ログ置き場に戻る■ 1- 次250 最新50
DAT2HTML 0.33f Converted.