GOGOV の回答履歴
- Win32アプリのデータ保存/読込の手段について
【環境】WinXP/VC++6.0/Win32アプリ(MFC未使用) 【件名】Win32アプリのデータ保存/読込の手段について お世話になります。 下記前提のWin32アプリの場合、外部ファイルへのデータ保存/読込を行う手段として、INIファイル操作のAPI GetPrivateProfileStruct()とWritePrivateProfileStruct()等 を使用することが妥当かどうかについて、ご意見・ご指摘いただけますでしょうか。 【前提】 1)扱うデータは全てバイナリで、各データは構造体単位で管理する。 2)各データ(構造体)の容量は20バイト~100バイト程度。 3)各データ(構造体)は、カテゴリーとキーの組み合わせで一意に識別する。 4)関連のあるデータ(構造体)は同じカテゴリーとして管理する。 5)Windows32bitのマシン上での動作のみを想定している。 6)ファイル内での各データ(構造体)の開始位置は可変としたい。 ※データ(構造体)の種類と、容量が増減(構造体メンバの増減)する可能性があるため。 7)可能な限り、レジストリを使用したくない。 8)データ保存/読込の頻度は、アプリの起動時・終了時のみ。 【私見】 下記Win32APIの仕様が、前提1)2)3)4)6)を容易に実現するのに適している。 GetPrivateProfileStruct() WritePrivateProfileStruct() 【懸念】 前提5)に関して、MSDNではこれらの関数は16ビットWindowsアプリケーションとの互換性を保つために用意されているもので、 Win32アプリケーションではレジストリを使用するよう推奨されています。 以上よろしくお願いいたします。
- 文字列の中から必要なデータを抜き出す
VC++6.0 です。 計測機器から受信したデータ(文字列)の中から、必要なデータだけを抜き出したいのですが、 うまく抜き出すことが出来ません。アドバイスいただけませんでしょうか? 受信する文字列は 伝送制御キャラクタSTX(0x02) "文字列" 伝送制御キャラクタETX(0x03) のように受信します。 抜き出すための目印?がキーボードで入力できるような文字列の場合は過去ログにありました以下のコードで 抜き出すことが可能でした。 抜き出すための目印を 0x02 や 0x03 にする為にはどうしたら良いでしょうか? //文字列版 #include <stdio.h> #include <string.h> #include <stdlib.h> char *cut(const char *str, const char *ss, const char *es, char *buff){ /* str の ss の次から es の前までの文字列をbuff に切り出す */ char *wk, *s, *e, *c; wk=strdup(str); if(wk==NULL)return NULL; s=strstr(wk, ss); if(s==NULL){ free(wk); return NULL;} c=s+strlen(ss); e=strstr(c, es); if(e==NULL){ free(wk); return NULL; } *e='\0'; strcpy(buff, c); free(wk); return buff; } int main(void){ const char url[]="?http://www.sample.ne.jp/";? char buff[32]; printf("//~/:%s\n", cut(url , "//", "/", buff)); return 0; }
- VS.Net2003とVS.Net2005の互換性
プログラミング初心者です。 職場のPCには、VS.Net2003がインストールされていて、勤務時間中はそれでプログラミングをしています。 一方、自宅のPCにはVS.Net2005がインストールされています。 本日、職場で行ったプログラムを自宅に持ち帰り、プログラミングをしようとしたところ、 VS.Net2005対応にファイルが変換されてしまいました。 その際「1箇所でも変更すると、旧バージョンでは使えません」というようなメッセージが出ました。 このような環境下で、(職場と自宅を)行ったり来たりは無理なのでしょうか? 完全互換とまでいかなくても、基本的な部分が互換していればよいのですが… VS.Netのなかで、よく使うのはC#とC++です。 何かよい方法がありましたら、アドバイスをいただきたいです。
- ベストアンサー
- C・C++・C#
- juicemikan
- 回答数1
- デュアルディスプレイ下において,セカンダリディスプレイへの出力を指定する方法(visual C.net, DirectX)
Visual C.net 2003+Direct X9.0にてプログラムしている初心者です.デュアルディスプレイ下においてメインのディスプレイではなくセカンダリのディスプレイへ描画するには,どのようにすればよろしいのでしょうか? (調べるとっかかりや情報のある検索ワードがうまく見つけられず困っております.ご教示ください.)
- ベストアンサー
- C・C++・C#
- hiyahiya12345
- 回答数1
- #defineの使い方
お世話になります。 C#で質問があります。 #defineでシンボルを定義しておいて、 複数の別のファイルから、#ifでコンパイルを切り替えたいのですが、どのようにすれば可能でしょうか? C++の場合は、#includeで出来たと思うのですが・・ よろしくお願いいたします。
- 構造体とファイル入出力について(C言語)
現在ゲームのスコアのセーブ処理を作っています。 そこで struct score { int english; int math; int physic; }; struct score tom, judy, tanaka; などという構造体を作ってセーブファイルを作る場合 の処理を書いたのですが、 FILE *file; //ファイルオープン file = fopen("save.txt","w+"); fprintf(file,"%d %d %d ", tom.english, tom.math, tom.physic); fprintf(file,"%d %d %d ", judy.english, judy.math, judy.physic); fprintf(file,"%d %d %d ", tanaka.english, tanaka.math, tanaka.physic); fclose(file); //ファイルクローズ などと同じことを冗長に何度も繰り返して書かねばなりません。 fprintfなどで構造体のメンバー全てを一気に全部書き出すなどというのは可能なのでしょうか?
- ベストアンサー
- C・C++・C#
- amazontester
- 回答数4
- サービスEXEのプロセス終了について
VC6.0 ATL COM AppWizard で作成したWindowsサービスについて質問です。 サービスが停止できなかった場合など、サービスEXEをタスクマネージャからプロセスの終了したいのですが、 Windows2000の場合、「アクセスが拒否されました。」と表示され、終了できません。 サービスEXEをタスクマネージャから終了できるのか、またそのために必要なコードをご教授願います。 サービス関連のロジックは ATL COM AppWizard で作成されたまま使用しております。
- ソフトの起動ってどうやるの?
C言語で、ソースの特定の場所に起動の文章を書くことで、好きな時にMediaPlayer等のソフトを起動することはできますでしょうか? (Windows XP studio.NET)
- ベストアンサー
- C・C++・C#
- yumichongu
- 回答数3
- サービスEXEのプロセス終了について
VC6.0 ATL COM AppWizard で作成したWindowsサービスについて質問です。 サービスが停止できなかった場合など、サービスEXEをタスクマネージャからプロセスの終了したいのですが、 Windows2000の場合、「アクセスが拒否されました。」と表示され、終了できません。 サービスEXEをタスクマネージャから終了できるのか、またそのために必要なコードをご教授願います。 サービス関連のロジックは ATL COM AppWizard で作成されたまま使用しております。
- C# デスクトップ画面にずっとフォームを表示させる
透明にしたフォーム上にアナログ時計を描画してデスクトップにずっと置いておきたいのですが、どうすればよいでしょうか?よろしくお願いします。
- 締切済み
- C・C++・C#
- noname#46712
- 回答数2
- C# デスクトップ画面にずっとフォームを表示させる
透明にしたフォーム上にアナログ時計を描画してデスクトップにずっと置いておきたいのですが、どうすればよいでしょうか?よろしくお願いします。
- 締切済み
- C・C++・C#
- noname#46712
- 回答数2
- C#で他アプリをアクティブにする
C#で他アプリ(OutlookExpress)をアクティブにしたいのですが、タイトルバーではころころ変わってしまうのでInteraction.AppActivate("Outlook Express");では厳しく、どうやらウィンドウクラスを取得してやるしかなさそうなのですがこういうものがモジュール単位で書いてあるサイトなんてありますか?
- ベストアンサー
- C・C++・C#
- noname#46712
- 回答数2
- C#のフォーム間のデータの受け渡しについて
はじめまして。よろしくお願いします。 最近C#をはじめましたがいきなりつまづいてしまいました。 クラスを利用しフォーム間でデータの受け渡しをしたいのですがどうすればいいのでしょうか? 処理は以下のようになっております まず、フォームが2つあります。フォーム1とフォーム2とします。 最初に起動されるのがフォーム1で、フォーム1にはボタンが2つあります。ボタンA、ボタンBとします ボタンA、ボタンBどちらのボタンを押下しても、フォーム2が開きますがどちらを押されてたかをフォーム2のテキストボックス(テキスト2とします)に表示します。 クラスですがフォームが2つとデータ保持のためのクラスが1つ(データ保持クラスとします)があります。 データ保持クラスにはint形のBtnClickプロパティ(get,set)を作成しております。, フォーム1のボタンA押下時処理 データ保持クラスのBtnClickに1を格納し、フォーム2を開きます。 フォーム1のボタンB押下時処理 データ保持クラスのBtnClickに2を格納し、フォーム2を開きます。 フォーム2起動時処理 データ保持クラスのBtnClickから値を取得しフォーム2のテキスト2へ表示します。 で、肝心の質問ですが、データ保持クラスの宣言はどこにすればいいのでしょうか? また、インスタンスはどのタイミングで作成すればいいのでしょうか? フォーム1にpublicとして宣言しインスタンスを作成し、ボタン押下時にBtnClickプロパティーにデータを格納し・・・ というところまではできたのですが、フォーム2で値が取得できないどころか、コンパイルが通りません。 あと、こういうデータ保持クラス使い方って一般的ですか?? 長々と脈略もなく書きましたがご教授ください。どうぞよろしくお願いします。
- おかしいところ
ソースのおかしいところ教えてください #include <stdio.h> #include <time.h> #include <stdlib.h> //繰り返し処理(結果のトータル表示なし) main () { int piayer, computer; int limit = 5; //繰り返し回数 int i; printf ("【%d回勝敗ジャンケンゲーム】\n", limit); srand(time(NULL)); for(i = 0; i < limit; i++) { printf("ジャンケンゲーム・・・(グ―:1 チョキ:2 パ―:3を入力) > "); piayer = 0; scanf("%d", &piayer); while (getchar() != '\n') { } computer = rand()%3 + 1; printf("コンピュータは"); if(computer == 1) {printf("グー"); } else if(computer == 2) { printf("チョキ");} else if(computer == 3) { printf("パー");} printf("! "); if(computer == player){ printf("あいこ\n"); } else if(player ==1 && computer ==2){ printf("プレイヤーの勝ち\n"); } else if(player ==2 && computer ==3){ printf("プレイヤーの勝ち\n"); } else if(player ==3 && computer ==1){ printf("プレイヤーの勝ち\n"); } else if(player ==2 && computer ==1){ printf("コンピュターの勝ち\n"); } else if(player ==3 && computer ==2){ printf("コンピュターの勝ち\n"); } else if(player ==1 && computer ==3){ printf("コンピュターの勝ち\n"); } else { printf("プレイヤーが不正な手を出した\n"); } return 0; }
- ベストアンサー
- C・C++・C#
- kawasemi-1204
- 回答数8
- VC6.0で開発したMFCを利用したEXEの配布方法
初めて質問します。 MicrosofVisualC++で開発したEXEをWindows2003サ-バへ 配布というかインスト-ルしたいのですが、さっぱり 方法わかりません。 MFCを利用しているので余計にわかりません。 Windows2000で開発しているのですが、本来どうやって 他のパソコンとかサ-バへ開発したEXEを配布するので しょうか? どなたか猿にもわかる説明をお願いします。 以上
- DLLからEXEに構造体を渡すとき
すいませんが、DLLからEXEに構造体を渡すときに どのようにしたらいいのでしょうか? 調べてみても EXE→DLLには載っているのですが、 DLL→EXEには調べ方が悪いのかわかりませんでした。 よろしくお願いいたします。 typedef struct _KOUZOU { int a; int b; } KOUZOU; (ここをどのように?) CALLBACK test() { KOUZOU kouzou1; kouzou1.a=1; kouzou1.b=2; return (ここをどのように?); }
- Aドライブしか参照できないファイル選択コモンダイアログ
VC++初心者のため漠然とした質問で申し訳ありません。 Aドライブしか参照できないようにファイル選択コモンダイアログに制限(というか参照ドライブのフィルタ)を設けたいのですが、可能なのでしょうか? よい方法をご存知の方具体的な処理記述方法など教えてください。また、参考になるサイトがあればあわせて教えてください。
- Aドライブしか参照できないファイル選択コモンダイアログ
VC++初心者のため漠然とした質問で申し訳ありません。 Aドライブしか参照できないようにファイル選択コモンダイアログに制限(というか参照ドライブのフィルタ)を設けたいのですが、可能なのでしょうか? よい方法をご存知の方具体的な処理記述方法など教えてください。また、参考になるサイトがあればあわせて教えてください。
- VC++6 EXEをDLLに変換
VC++6の「Win32 Aplication」で作成したプロジェクトがあります。 ビルドするとEXEができますが、これをDLLにするには どうすればよいですか。 よろしくお願いします。
- 1
- 2