トップページ⇒tech
1001コメント309KB

VisualC++相談室 6

■ このスレッドは過去ログ倉庫に格納されています
0001いさましいチビNGNG
VisualC++関連の話題を扱うスレッドです。

旧スレッド
http://pc.2ch.net/test/read.cgi/tech/1006834463/l50
0153デフォルトの名無しさんNGNG
>>152
まあ、だいたい大丈夫だね。
たまーに動かない人がいるみたいだけど。
0154なんかねぇNGNG
VC++5.0エンタープライズ版
を使っていますが、6.0を買いなおした
方がいいですか?


0155デフォルトの名無しさんNGNG
いまVC6を買うのはただのばかだなぁ
0156デフォルトの名無しさんNGNG
>155に同意

Web系だと不便かも知れないけど
そうじゃなけれ5.0で良いのでは?
0157デフォルトの名無しさんNGNG
質問です。
現在 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() できちんとコマンドラインの状況を判断できるでしょうか。
0158デフォルトの名無しさんNGNG
>>157
訂正。日本語が変でした。

>どうすれば _getmbcp() できちんとコマンドラインの状況を判断できるでしょうか。
↓
どうすればきちんとコマンドラインで設定されているコードページを取得できるでしょうか。

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

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

いくつか要らない(と思われる)ファイルを消して起動しなおせば直るんだけど,フォルダ
作ってたらそれも作り直しなので安全な修正方法あれば漏れも知りたい。
0161157NGNG
>>157-158
自己解決しました。
GetConsoleCP() 使ったらうまくいきました。

ちょっと Win95 でどうなるか不安ですが…
http://www.microsoft.com/japan/developer/library/jpwinpf/_win32_getconsolecp.htm
0162デフォルトの名無しさんNGNG
CListBoxで
リストのうちの何番目かを
指定して反転表示させたいのですがよくわかりません。




0163デフォルトの名無しさんNGNG
>>162
そうですか。
0164デフォルトの名無しさんNGNG
>>162
答えはヘルプファイルにあります
0165デフォルトの名無しさんNGNG
あの、InternetExplorerでプラグインとして使えるActiveXをVC++で作るにはどうすればいいんですか?
0166デフォルトの名無しさんNGNG
>>165
InternetExplorer.hをインクルードする
0167デフォルトの名無しさんNGNG
fatal error C1083: インクルード ファイルがオープンできません。'InternetExplorer.h': No such file or directory
0168デフォルトの名無しさんNGNG
>>168
include/InternetExplorer.hをインクルードする
0169デフォルトの名無しさんNGNG
atal error C1083: インクルード ファイルがオープンできません。'include/InternetExplorer.h': No such file or directory
0170デフォルトの名無しさんNGNG
インクルードって、リンクファイルじゃなくてIncludeですか?
0171デフォルトの名無しさんNGNG
みっともないのでネタはやめてくださいね
0172デフォルトの名無しさんNGNG
あの、上の方の冗談(?)はとにかく本当に #include "include/InternetExplorer.h"でファイルオープン不可のエラーが出るのですが…。
0173デフォルトの名無しさんNGNG
まずそんなファイルがあるかどうかPC内検索してみろよ
0174デフォルトの名無しさんNGNG
>>173
次に MSDN ライブラリを BHO で検索だな。
0175デフォルトの名無しさんNGNG
ないです…。VC++以外のものをインストールする必要があるんすか?
0176152NGNG
>>153
お答えくださってありがとうございます。
0177デフォルトの名無しさんNGNG
Unixかなんか向けに作られたプログラムをVCでコンパイルしようとすると
#include <sys/time.h>をオープンできませんってエラーが出ます。
その他に
struct timeval start, end; や
gettimeofday(&start,0);
random()
の行のところで定義されてないのを使っているとエラーが出ます。
VCでそういうのが定義されているヘッダファイルとライブラリはないのですか?
プログラムの実行時間を計るために使われている(randomは違うけど)は分かるけど
具体的にどうしたらいいか分かりません。
お願いします。
0178デフォルトの名無しさんNGNG
>165
まず、COMというものの知識をつけてください。
その後、VC++を起動し、新規作成→プロジェクト→ATM Com App Wizard→銀行→ATM→(゜Д゜)ウマー
0179デフォルトの名無しさんNGNG
OS依存の部分を
すべてなおすナリ
0180デフォルトの名無しさんNGNG
VC++を起動し、新規作成→プロジェクト→KFC AppWizard(exe)→ドラゴンツイスター頼む→(゜Д゜)ウマー
0181デフォルトの名無しさんNGNG
VC++を起動し、新規作成→プロジェクト→MFC AppWizard(exe)→CVSup→make world→signal11でへくった(゜Д゜)マズー
0182login:PenguinNGNG
イベントで
Becky2を起動して
特定のアドレスに
メールを送信する
というプログラムを書きたいのですが、
アドバイスお願いします。
0183デフォルトの名無しさんNGNG
>>182
どっかで見たことあるよな・・・マルチ?
どうでもいいけどどんなアドバイスがほしいのか書けよアフォ。こちとらエスパーじゃねーんだからさ。
全部とか言うなよ。
0184デフォルトの名無しさんNGNG
すいません。
クラスでの関数ポインタ配列について教えて下さい。

================================
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>::*' の前に必要です"
というエラーが出てしまいます。
クラスで関数ポインタ配列を使用する場合はどうしたら良いのでしょうか?

0185デフォルトの名無しさんNGNG
[section]
aa=あいうえお
bb=かきくけこ
cc=さしすせそ

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

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

できれば例も、、、




0186デフォルトの名無しさんNGNG
keyを貰ったんなら、それをつかって、
GetPriv...を回せばいいのでは?
0187デフォルトの名無しさんNGNG
>184
ずいぶん邪悪なキャストですね....

class testClass{
private:
void (testClass::*pArFunc[2])(); //関数ポインタ配列
public:
void Func();
void Func0(){}
void Func1(){}
};
void testClass::Func(){
*(pArFunc+0) = Func0;
*(pArFunc+1) = Func1;
}
0188デフォルトの名無しさんNGNG
標準ライブラリを使いたくないのですが
va_list
va_start
va_end
の代わりにになるWin32Apiってあるんですか?
0189デフォルトの名無しさんNGNG
VC++では、va_*はマクロです。
ちゃんとヘッダを覗きましょう。
そして、APIで実現されようがないことを
理解しましょう。
0190デフォルトの名無しさんNGNG
クラスをエクスポートしたと思われる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

あと名前変形はいったいどういう規則で行われてるのやら……
0191デフォルトの名無しさんNGNG
自分でaudioRemConクラスの定義を捏造、ダミーメソッドでexport。
尚、メンバ変数は、char dummy[2000]などで代用しておくこと。
それと、メソッドの型情報は自力で復元すること。

できあがったlibを使用して、リンク。元のdllを使用。
0192184NGNG
>>187様様
コンパイルできました。
ありがとうございます。
助かりました。
0193デフォルトの名無しさんNGNG
>>189
ありがとうございます。
もう1つひつもんなのですが
vsprintf等は標準関数?みたいなのですが
これはLIBCをLINKしなくても良いのでしょうか?
0194デフォルトの名無しさんNGNG
vsprintfは標準関数。
WIN32APIならwvsprintf使え。
0195185NGNG
keyはわからない状態で検索しないといけないんです。
0196デフォルトの名無しさんNGNG
Here are fill of silly.
0197185NGNG
>>186
すんません。
実は検索したキーの入り方がよくわからないんです。
0198デフォルトの名無しさんNGNG
>>194
ありがとうごさいます。
好きです。大好きです。
0199デフォルトの名無しさんNGNG
わらをもすがる思いです。どなたか教えてください。
ドキュメント/ビューアーキテクチャで、ドキュメントの方にメッセージを
飛ばしたいんですが、できるんでしょうか?メニューからは飛んでくるので
できると思うんですが。ウィンドウハンドルはどうやってとったらいいんでしょう?
0200デフォルトの名無しさんNGNG
>>199
普通はViewにメッセージが飛んできて、
それをドキュメントにつたえるという形になると思うが...
0201デフォルトの名無しさんNGNG
質問があります。
メイン画面から別のダイアログを表示した場合に、
メイン画面を非表示にするとタスクバーボタンも消えてしまいます。
タスクバーボタンを表示する方法はないのでしょうか?
いろいろ調べてみましたが、どうしてもわからないので、
誰か教えてください。
よろしくおねがいします。
0202デフォルトの名無しさんNGNG
>201
ShowWindowで最小化するか、MoveWindow他でサイズ0のウィンドウにするか。
0203デフォルトの名無しさんNGNG
あぼーん
0204デフォルトの名無しさんNGNG
>>201
ダイアログに拡張スタイル WS_EX_APPWINDOW を指定する、とか。
0205201NGNG
>>202
>>204
返事ありがとうございました☆
早速参考にして、いろいろ試してみようと思います。
一人で考えていると、考え方が偏ってしまってダメですね・・・。
0206デフォルトの名無しさんNGNG
ダイアログアプリケーション(MFC)で
ウィンドウ全体にビットマップ(リソース)を貼り付けるには
どうしたらよいのでしょうか。
どうしてもシステムメニューの上にまで
ビットマップを貼り付けることができません。
0207デフォルトの名無しさんNGNG
>206
GetClientRectでウインドウの長さつかまえてデスクとっぷのDCゲットしてClientToScreenで現在地を得て描け。
0208デフォルトの名無しさんNGNG
>>206
タイトルバーが必要ないなら消しちゃえば。
0209デフォルトの名無しさんNGNG
>>206
GetWindowDC()
0210デフォルトの名無しさんNGNG
>>206
WM_NCPAINT
0211206NGNG
できました。
ありがとう。
0212デフォルトの名無しさんNGNG
>>211
せめてどうやって出来たのか書け、
いくらここが2chでも最低限の礼儀は守ってくれ。
技術系MLに行ったときにはもっと注意してくれよ。
0213206NGNG
すみません。こんな風にやってみました。

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 );
0214043NGNG
VC6.0で作成したプログラムに、ACCESSで作ったデータベースを
ODBCでつなげたいんですけれども。

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

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

お願いします!
0215SAVENGNG
リストボックスをシングルクリックした時にクリックした場所の項目番号を取得したいのですが、
ダブルクリックした時の項目番号しか取得できません。

どうやって取得したらいいのでしょうか。
適当に教えてください。
0216デフォルトの名無しさんNGNG
>215
GetCurSel() ?
0217デフォルトの名無しさんNGNG
以前までビルドするのはその際に書き換えたソースだけビルドしていたのに何故か昨日から急に
どんなことがあっても毎回全ソースをビルドするようになりました。コンパイル実行した直後にもう一度
コンパイルしようとしてもまた全てビルドしようとします。VC++の再インストールも試みましたが結局
症状が治ることはアリマセンでした。
どうすればこの症状が治せますでしょうか・・・よろしくお願いします。
0218デフォルトの名無しさんNGNG
うぜーーーーーーーーーーーーーーーーーーーーーーーー
0219>>219NGNG
0220デフォルトの名無しさんNGNG
>>217
押すボタン間違えてんだろ
0221217NGNG
F7押してからCtrl+F7でも駄目なんです・・・。
Ctrl+F7で実行してから終了後、すぐにCtrl+F7押しても駄目です。ビルドされてないとでます。
0222デフォルトの名無しさんNGNG
>>217
Makefileというかプロジェクトのファイル壊れたんじゃないのか?
もう一度プロジェクトを作りなおしてみれ。
0223217NGNG
プロジェクトも作り直してみましたが駄目です・・・ためしにProjectつきのサンプル等をWeb等から落としてきた後
コンパイルしてもやはり毎回全ビルドします・・・。うあ・・・。
0224デフォルトの名無しさんNGNG
>>217
マシンの時計が狂ってるとか
0225デフォルトの名無しさんNGNG
MFCでドキュメントクラスに、
ダイアログバー上にあるコンボボックスのメッセージハンドラ作ったんですが、
値を読むのって、フレームウィンドウからコントロールを取得しないと駄目なの?
それともハンドラはフレームウィンドウに作って、
ドキュメントクラスの処理関数呼ぶのが正しいのかな?
0226SAVE(215)NGNG
>>218
すいません
0227デフォルトの名無しさんNGNG
>217
時計が狂ってるんじゃないのか
0228デフォルトの名無しさんNGNG
>>200
ありがとうございます。そうですね、設計がヘンだと思います。
*Docにもメッセージが飛ばせるとおもったのですが。
もうちょっとドキュメント・ビューアーキテクチャを勉強しないと・・・
でも、メニューから飛んでくるのはどうしてなのでしょうね??
0229デフォルトの名無しさんNGNG
>217
俺の隣に座っている人も、これに、はまってたよ。
でも、全プロジェクトじゃなくて、特定のプロジェクトだけ。
.dswとか見ても、特に変わったとこないし、.ncbやら.optやらを消しても直らない。
タイムスタンプも時計も異常なしで、もちろんアクセス権とかの問題でもない。
「駄目だこりゃ」ということで、そのときは放っておいたんだけど。

もしかしたら、HKCUの DevStudioのレジストリキーを一旦削除かなんかしてみると、
直るかも。
0230デフォルトの名無しさんNGNG
インストールしていないフォントファイルからフォント名を取得するには
どうすればよいのでしょうか?
0231デフォルトの名無しさんNGNG
getsystemmetrix
0232デフォルトの名無しさんNGNG
>>231
誤爆?
0233デフォルトの名無しさんNGNG
VC++ で使えるフリーの ActiveX コントロールを探しています。
具体的には「Microsoft Forms ...」コントロールのような
標準コントロールライクなものやグリッドコントロールを探して
います。Vector とかで探したら何個かはありましたが、試して
みると VC++ で使えませんでした。
ご存知でしたらそのサイトを教えて頂けないでしょうか?
どんな些細な情報でも構いませんのでよろしくお願いします。
0234217NGNG
何故かこのスレをチェックした後、229さんの方法を試す前にテストしてみようと思ったら治ってやがりました。
昨日寝る前に224、277さんの助言通りTClockで時計合わせてみたのですがその直後は全然駄目だったんですけど・・・。
まぁ治ってよかったです。ありがとうございました。
0235201NGNG
>>202
>>204
遅くなりましたが・・・
最小化する方法にしました。
でも、最小化するとWin98SEの時だけ別ウィンドウが一番下に
表示されてしまうんですが・・・。
そういうものなんでしょうか??
もしかしたら、他のOSでは偶然ならなかっただけかもしれませんね。
あまり気にしないことにします。
0236デフォルトの名無しさんNGNG
>>235
最小化しなくても画面外に出しちゃえば?
0237201NGNG
>>236
なるほど・・・そういう方法もありますね。
試してみますね。
0238海太郎NGNG
VC初心者です。ちょっとわからないことが出来たので書き込みさせて
いただきます。

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

すみませんが、よろしくお願いします。
レスポンス、お待ちしています。
0239デフォルトの名無しさんNGNG
>>238
http://www.expertmg.co.jp/html/cti/vctips/control.htm
0240230NGNG
もう一度。
インストールしていないフォントファイルからフォント名を取得するには
どうすればよいのでしょうか?
0241デフォルトの名無しさんNGNG
>240
LoadLibrary して EnumResourceNames→FindResource→LoadResource のコンボ
後はゴリゴリ解析するんだと思う。
0242女性社員NGNG
あのーVCでDAOとか使ってデータベース操作などをしている人って
いますでしょうか。
VBでは参考資料が豊富にあったのですが、VCだと全然ありません
参考にあるような本やサイトがあったら教えてください。
0243 NGNG
http://www.microsoft.com/japan/developer/library/vccore/_core_dao_and_mfc.htm
0244デフォルトの名無しさんNGNG
>>241
フォントファイル(.ttfなど)をLoadLibraryするんですか??
0245デフォルトの名無しさんNGNG
APIオンリーで組んでます。
初心者な質問ですが許してください(;´∀`)

VC++はNNなど、メニューバーから各項目にフォーカスを当てたとき
ステータスバーにその項目の機能について簡単な説明が出ますよね?
この機能をつけたいのですが、フォーカスが当たったときにどういったメッセージが
送られてくるのかが分かりません。
どなたか教えていただけないでしょうか?
0246デフォルトの名無しさんNGNG
ネット越しに相手のPCのネスケを起動するのはどうすればいいでしょうか?
APIみたいのを探してみたんだけど、分かりませんでした。
よろしくお願いします…。
0247デフォルトの名無しさんNGNG
>>246
ネタは sage でな。
0248デフォルトの名無しさんNGNG
>>246
Windowsのセキュリティーホールを探して下さい。
0249デフォルトの名無しさんNGNG
246の者です。
ネタではありません。Cは初めてなのでよく分かりません…。
やはりAPIは無理なのでしょうか?
0250デフォルトの名無しさんNGNG
「トロイ バックドア バックオリフィス」でゴグルすれ
0251デフォルトの名無しさんNGNG
ShellExecuteプログラムを相手のPCで起こせばいい事は分かってるんですが…。
どうしてこんなに難しいんだー!!!
0252デフォルトの名無しさんNGNG
>>245
ペイン
ストリングテーブル
■ このスレッドは過去ログ倉庫に格納されています