- 1 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 12:16:11 ]
- Visual C++入門者・初心者からの質問を、
お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。 ■質問するにあたって ・エラーや警告のときはエラーメッセージを書きましょう。 ・開発環境も書きましょう、特にWindowsForm、MFC、Win32アプリケーションの区別。 ・できるだけ具体的に。 質問の仕方については次のページが大変参考になります。 www.hyuki.com/writing/techask.html ■回答するにあたって ・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。 (MSDNのどの項目だとか、何のキーワードでGoogleするとか) ・ネタや煽りは軽く流しましょう。 過去スレ、関連スレなどは>>2-5辺り。
- 253 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 00:35:26 ]
- 行儀が悪いのはむしろこういう勝手な事をOSにさせるMSだと思うが
別にユーザー毎の設定で問題ないアプリなら不具合にならないわけだし 結局の所はケースバイケースって事でしょ ゲームアプリのセーブデータなんかはプログラムフォルダ内に入れとかないと セーブデータ残したままアンインストールする場合、普段ユーザーが見ない所に ファイルが残るしな 「行儀がいい」と「頭が固い」を履き違えてるんじゃね
- 254 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 00:43:20 ]
- >>253
いや、権限によってはProgram Filesを見れないから アプリの起動自体できない 設定ファイルがないって感じで落ちる ケースバイケースじゃなくてこう作らないと駄目ってところまできてる
- 255 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 00:48:55 ]
- さすがにそれは設定ファイルが存在することを前提にプログラムを組む方がおかしい
なかったらデフォルト値で動かすのが普通。
- 256 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 00:51:59 ]
- >>254
設定ファイルがないと動かないなんて作りになってるのは ProgramFilesだろうがなんだろうが終わってるだろ
- 257 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 00:59:36 ]
- >>256
仮にProgramFilesが駄目だったら今度どこに保存すんの?
- 258 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 01:06:21 ]
- Vistaは持ってないけどこの認識であってる?
1.ファイルを読むだけだったらProgram Filesから行われる 2.書き込みが発生した場合、バーチャルストアで行われる 3.一度書き込みが発生したファイルは、バーチャルストアで読み書きが行われる Program Filesから読めないとか、どこに保存するとか言ってる人がいるから混乱してきたが。 この認識が違うなら>>254に詳しい説明をしてほしい
- 259 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 01:11:29 ]
- >>258
そんなのセキュリティのポリシーの設定で変わるじゃん 駄目にしてある会社だったら読み取りも駄目だろ
- 260 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 01:15:46 ]
- その場合ってそのユーザにアプリって起動できんの?
インストールの設定も含めて
- 261 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 01:29:36 ]
- 仮にそういうセキュリティ設定になってたとしたら
INIファイルどころかあらゆるセーブデータの読み書きができなくなるわけだから INIファイルをどうしようが結局同じことだと思うけど まあどうしても全てのユーザーで動作させたいんだったら全セーブデータを >>244のようにするか、レジストリに全てぶっこむしかないだろうね アホ臭いとしか言いようがないが
- 262 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 01:45:39 ]
- でもきちんと対応するってならそれっきゃないってことだろうな
まあ、業務でそういうところに当たらないとも限らないからちょっとメモっておこ 担当者がキチだと普通にこういうの要求されるよね
- 263 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 03:54:39 ]
- >>254
ファイルが読めないなら起動に必要なデータファイルはどこから読むんです?
- 264 名前:234 mailto:sage [2008/12/07(日) 04:26:59 ]
- 豚切り失礼します。
>>236さん 遅くなりましたが、回答ありがとうございます。 そうですか。UNICODEはINIファイルとして使えないのですね。 勉強になりました。
- 265 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 12:46:44 ]
- >>258
3.が違う
- 266 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 16:07:48 ]
- >>265
どう違うの?
- 267 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 20:53:50 ]
- 言ってみたかっただけじゃね。
- 268 名前:デフォルトの名無しさん [2008/12/08(月) 01:31:32 ]
- CとC++の違いってヘッダがiostreamになって使う関数が違う以外にないの?
こんなんでオブジェクト施行とか騒いじゃってるの?拍子抜けなんだけど
- 269 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 01:38:10 ]
- クラス、テンプレート、多重定義、例外処理……、
オブジェクト指向に関係あるものないもの、CになくてC++にある機能なんていくらでもあるが。
- 270 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 01:49:56 ]
- クラスなんて構造体に毛がはえたようなものしょぼいんだよはっきりいって
- 271 名前:デフォルトの名無しさん [2008/12/08(月) 02:18:40 ]
- 馬鹿野郎!
それのおかげでインテリセンスの恩恵があるんだろうが!
- 272 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 00:47:26 ]
- C→C++の一番の利点は
コードが見やすいこと、これに尽きるだろ C++に慣れるとCのでっかいコードは耐えられん クラス化したくてウズウズしてくる 変数途中で宣言したくなる
- 273 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 00:51:53 ]
- C言語の勉強やってからC++に移行したほうが良いだろうか
それとも最初からC++から勉強しても問題ない?
- 274 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 00:57:11 ]
- >>258
バーチャルストアに書き込むのはマニフェストがない場合だけだよ。 マニフェストがあればあとは管理者権限への移行が成功すれば直接書くことになる。
- 275 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 01:19:02 ]
- >>273
いきなりC++でいいと思う。 共通する事柄はいずれにせよ学ぶことになるし、 Cで良く使うテクだけどC++ではあまり使わないのとか意外とあるし。
- 276 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 01:24:14 ]
- >>275
把握したありがっとう
- 277 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 03:21:41 ]
- >>274
つかそれって結局管理者権限で実行するってことじゃねーの? 他のシステムファイルからみとかで管理者権限が必要でマニフェストに組み込まれた アプリじゃなければ>>258のようになるってことっしょ?
- 278 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 10:30:08 ]
- >>277
マニフェストがない場合、管理者権限でもバーチャルストア行き。
- 279 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 10:52:59 ]
- マニフェストがないという言い方は正しくない
- 280 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 12:44:06 ]
- 一連の流れをみててもどうもわかりにくいです。
人によって言ってる事が違うというか。 管理者、制限ユーザー、マニフェスト関連で正確な挙動に ついての詳細情報が掲載されてるサイトないですか? VistaだけでなくXPや2000での情報も欲しいです。
- 281 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 14:48:03 ]
- >>280
一次情報源としてMSDNライブラリなど 例えばここらへん。 msdn.microsoft.com/en-us/library/bb756883.aspx msdn.microsoft.com/en-us/library/bb756973.aspx msdn.microsoft.com/en-us/library/bb756996.aspx technet.microsoft.com/en-us/windows/aa905113.aspx
- 282 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 15:11:06 ]
- 日本語でおk
- 283 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 15:16:27 ]
- 初心者スレで英文持ち出してくるヤツは死んでいいと思うよ
日本と米で仕様が違うのもよくある事だしな
- 284 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 15:26:18 ]
- 英文にしか情報がないようなことを初心者スレで質問するヤツは死んでいいと思うよ
- 285 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 21:38:14 ]
- >>284
初心者なんだから分からんだろ。
- 286 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 21:50:21 ]
- 非標準言語のしか資料が無いと言うことが判っただけでも大きな進歩であり、
革新的な質問であったことは確定的に明らか。
- 287 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 22:55:05 ]
- 誰か日本語でわかりやすくまとめてくだちぃ
- 288 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 23:24:08 ]
- ホームエディションだと管理者か制限ユーザーのカテゴリわけだけで
細かい設定はないんだよな プロフェッショナルの管理者による厳しいセキュリティ設定まで考慮してもきりがないと思う どうやっても管理者次第で動かない設定にできるんだし XPホームエディションでProgramFilesに入れたアプリを制限ユーザーで動かしてみたけど 普通にINIファイルを含むセーブデータを読み書きできた Vistaでマニュフェストの指定なしだとこの読み書きがバーチャルストアになるってことか それを想定して動くつくりであればセーブデータもプログラムと同じフォルダでいいんじゃね
- 289 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 01:08:56 ]
- まぁ仮想ストアは救済策ってーか、MSお得意の泥臭い互換性の維持だからな。
多分将来的にはユーザーのデフォの権限を制限ユーザーにしたいんだろうが、 それVistaでやっちゃうとProgram Filesに書き込むアプリなだけで動かなくなるわけだし。 マニフェスト無しでほっとくのも止めやしないが、管理者権限のコマンドプロンプトやファイラから 起動したら別々の設定ファイルをうっかり作っちまうとかも起こりうるので、 requireAdministratorで起動毎にUACダイアログを出した方がいい。 そしてアプリのユーザーにダイアログをうざがられてAppDataに 書き込まざるを得なくなるというプレッシャーこそがUACの真意だとかなんとか。
- 290 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 02:03:25 ]
- かなりどうでもいい条件付けだな
- 291 名前:デフォルトの名無しさん [2008/12/10(水) 11:56:44 ]
- VS 2003からVS 2008にしてみました
C++のソースファイルはUTF-8で書かれていて、VS 2003では概ね問題なくコンパイルできていました。 ところがVS 2008のcl.exeは、このソース内に定数として書かれた文字列を勝手にSJISに変換して内部処理するようです。これでは正常動作できません。 この余計な機能を、何とか避ける方法はないのでしょうか? 膨大な量があるので、今さらファイルをSJISに戻すとかすることは不可能なんです。
- 292 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 12:03:53 ]
- コードページは?
- 293 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 12:10:24 ]
- 普通にコマンドプロンプトを開いて作業しているので、932のシフトJISです。
- 294 名前:デフォルトの名無しさん [2008/12/10(水) 12:15:05 ]
- すいません、本当に簡単なことなのですが
if(argc == 3){ if(argv[1] == L"-o"){ if((fp = fopen("argv[2]", "w")) == NULL){ printf("出力ファイルをオープンできません.\n"); exit(1); } fclose(fp); } この if(argv[1] == L"-o") の条件が通りません。 コマンドで test -o test1 のように打っても違うものとして認識しているようで・・・ 画面にプリントしてみると同じなのですが、Lをつけるとデータが違うものになってしまうのでしょうか?
- 295 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 12:16:52 ]
- chcpで変えてみては?
つーか、UTF-8でダメな例が思いつかないな、再現可能なソース無いですか?
- 296 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 12:18:44 ]
- >>294
文字列の比較に直接 == は使えません。
- 297 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 12:29:10 ]
- >>291
コンパイルエラーなのか動作が変なのか エラーメッセージがあればそれを書いてもらうと何かわかるかもしれません >>294 argvの型はTCHARですか
- 298 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 12:39:28 ]
- またどこの言語からの転向者だろ
VSつながりでVBかC#あたりか
- 299 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 12:40:19 ]
- template <typename Foo, typename Bar> class Baz : public Bar { なんたら
void Qux( const Quux<Foo,Bar> & foobar ) {...}; }; class Bar { なんたら }; // (1) VC2008で上のをもう少し複雑に書くと Baz::Qux での引数の型 Quux<Foo,Bar> が (1) の Bar と解釈されてコンパイルエラーになってしまう GCCだと通るんだけどなあ
- 300 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 12:40:36 ]
- >"argv[2]"
この書き方はPerlかPHPだろう
- 301 名前:デフォルトの名無しさん [2008/12/10(水) 12:52:34 ]
- もともとCとVBAをやってました
>>296 やっぱりstrcmpを使わないとだめですか? >>297 int _tmain(int argc, _TCHAR* argv[]) こう宣言してます
- 302 名前:デフォルトの名無しさん [2008/12/10(水) 12:53:27 ]
- もともとCとVBAをやってました
>>296 やっぱりstrcmpを使わないとだめですか? >>297 int _tmain(int argc, _TCHAR* argv[]) こう宣言してます
- 303 名前:デフォルトの名無しさん [2008/12/10(水) 12:57:44 ]
- >>302
はい。
- 304 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 12:59:15 ]
- if( _tcscmp(argv[1],"-o") == 0 ) {
では
- 305 名前:デフォルトの名無しさん [2008/12/10(水) 13:00:32 ]
- if( _tcscmp(argv[1],_T("-o")) == 0 ) {
では
- 306 名前:デフォルトの名無しさん [2008/12/10(水) 13:01:43 ]
- if (_tcsicmp(argv[1],_T("-o")) == 0) {
では
- 307 名前:デフォルトの名無しさん [2008/12/10(水) 13:03:35 ]
- >>304さんの方法でやってみたところ
エラー 1 error C2664: 'wcscmp' : 2 番目の引数を 'const char [3]' から 'const wchar_t *' に変換できません。(新しい機能 ; ヘルプを参照) というようなことを言われました。 どうもこの変換できないというところが理解できないです。代入しているわけでもないのに何故?って感じです。
- 308 名前:デフォルトの名無しさん [2008/12/10(水) 13:04:55 ]
- #include "stdafx.h"
#include "string.h" #include "stdlib.h" int _tmain(int argc, _TCHAR* argv[]) { FILE *fp; if(argc == 3){ if( _tcscmp(argv[1],"-o") == 0 ){ if((fp = fopen("argv[2]", "w")) == NULL){ printf("出力ファイルをオープンできません.\n"); exit(1); } fclose(fp); } else{ printf("USage :\n"); printf("-o : **********\n"); } } else{ printf("引数の数が違います"); } return 0; } これが全文です。
- 309 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 13:14:00 ]
- 通常 "-o" の文字リテラルは char で構成される
文字セットがユニコードの場合 _tsccmp は _wcscmp にマップされる _wcscmp が要求する型は const wchar_t * だからエラーになる _T マクロは文字セットにあわせてユニコードの場合には "-o" を L"-o" と変える L"-o" はワイド文字 wchar_t で構成されるリテラルだから通る すまん思いきり間違えた 304は俺
- 310 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 13:18:33 ]
- UNICODEに拘らなければANSI Cで十分なんだよな
- 311 名前:デフォルトの名無しさん [2008/12/10(水) 13:21:00 ]
- >>309
解決しました!ありがとうございます
- 312 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 13:47:31 ]
- >>291で質問した者です
再現可能なソースを作っていて気がつきました。 chcp 65001やchcp 437としても動作が同じで、文字列リテラルが強制的にSJISに内部変換されていることが分かりました。 UTF-8のソースファイルなのですが、「BOM」を付けると、このような動作になるようです。 BOMを付けないUTF-8だと、warning C4819 が山ほど出て、化ける文字までありますが、何とかなりそうです。 今回作った下の再現プログラムも、BOMありのUTF-8と、BOM無しのUTF-8では、動作が違ってきます。 #include <iostream> int main() { std::cout << "項目" << std::endl; return 0; } 一応解決したことにします。ありがとうございました。
- 313 名前:デフォルトの名無しさん [2008/12/10(水) 15:35:09 ]
- すみません>>294で質問したものですが、
同じソースで _tcscat(argv[2],L".txt"); という処理を入れ、作成ファイルをテキスト形式にしようと思ったのですが 出力されたファイルが、テキストではなくファイルで出力されてしまいます。 画面表示させるとちゃんと****.txt となっているのですが・・・
- 314 名前:デフォルトの名無しさん [2008/12/10(水) 15:49:13 ]
- >>313はスルーしてください
アホくさい間違いでしたので(汗
- 315 名前:デフォルトの名無しさん [2008/12/10(水) 22:29:54 ]
- Visual C++を使用していて、ちょっと困ってしまったので助けてください。
下記画像のようにスペース部分に色つき矢印やらドットやらが表示されて消えなくなってしまいました。 どこかでキーボード押し違えたみたいで・・ この設定の解除の仕方を分かる方いたら教えてください>< ↓ imepita.jp/20081210/770880
- 316 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 22:38:27 ]
- メニュー > ヘルプのキーボード何とかに一覧がある
- 317 名前:552 [2008/12/10(水) 23:45:14 ]
- ヘルプで見ても、そもそもコレが何なのか解らないので検索できないので
教えていただけませんか?
- 318 名前:552 [2008/12/11(木) 00:19:36 ]
- 質問に答えてくれなかったからってこんなこと言うのもなんだけど
なんか、プログラマーって陰湿な性格の人が多いよね。 解るんなら教えてくれればいいじゃん。初心者用のスレだった気がするけど。 ついでに、編集→詳細→スペースの表示で自己解決しました。 だれも教えてくれんかった。
- 319 名前:デフォルトの名無しさん [2008/12/11(木) 00:47:38 ]
- 今MIDIファイルを開くっていうプログラムを作りたいのですが、
よろしければ教えてください。 バージョンはVC++2005 AEです。
- 320 名前:319 [2008/12/11(木) 00:53:28 ]
- 319ですがGETFILE関数を使いたいです。
よろしくお願いします。
- 321 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 02:15:04 ]
- >>318
君が質問したのは3、4時間前だろ? 誰もが同じスレをずっと監視してサポートセンターのように対応してくれるとでも思ってんのか? 自分で解決したならそれでいいし、自分で色々やってもできなかったらまた質問すりゃいいだろ 陰湿なのはちょっとレスがない程度でふてくされる君の思考回路だよ
- 322 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 02:29:37 ]
- >>318
オマエみたいなパーデンネンを弾くために、みな時間置いてから答えるようにしてるからね。 ゴクローサン。
- 323 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 07:33:14 ]
- >>315
[編集]→[詳細]→[スペースの表示]
- 324 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 09:53:49 ]
- >>318
つーかその質問、定期的に出るんでうんざりなんだけど。 過去レス調べることもできないのかよ。 あと質問なんか1日くらい待てや、答える人が24時間張り付いてるわけじゃないぞ。
- 325 名前:デフォルトの名無しさん [2008/12/11(木) 10:10:52 ]
- こんにちわ。Visual C++でOPENGLを用いてゲームを作ろうと思うのですが、
ウィンドウを振動させるやり方がわかりません。。 何かコマンドややり方があるのならアドバイスください。よろしくお願いします。 ※JAVASCRIPTでウィンドウを振動させるみたいな感じです。
- 326 名前:デフォルトの名無しさん [2008/12/11(木) 10:18:59 ]
- >>325
SetWindowPos APIとrand関数を使え
- 327 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 10:28:02 ]
- もの凄く気軽に「こんなソフトありませんか?」
pc11.2ch.net/test/read.cgi/software/1218808744/331 331 名前:名無しさん@お腹いっぱい。[] 投稿日:2008/12/11(木) 09:50:07 ID:mvBU1EDM0 こんにちわ。 アクティブウィンドウを振動させるようなフリーソフトってありますか? OPENGLで実験中にウィンドウを揺らしたいのですが・・・コマンドも分からないし、出来ないので外部のツールで強引にしようかと。。 よろしくお願いします。
- 328 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 10:45:36 ]
- >>315
Ctrl+R、 Ctrl+Wを続けて入力
- 329 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 10:58:16 ]
- >318
試験勉強みたいに頭の中に全部記憶する必要ない。 というか情報量多すぎるからその都度自分で調べて解決していかないとだめ。 初心者の場合はどうやって調べたらいいかわからないから 調べ方を教えてあげるのが重要。 答えだけ教えたんじゃ、いつまでたっても自分で調べられようにならない。
- 330 名前:M [2008/12/11(木) 11:35:21 ]
- 今、VC++でMFCを用いたプログラムを作成中で、そのプログラムでRS232C通信を行いたいのですが、RS232c通信のプログラムの部分だけAPIを用いて記述したいのですがどのようにすればいいのでしょうか?
方法があれば教えてください。お願いします。
- 331 名前:デフォルトの名無しさん [2008/12/11(木) 11:42:17 ]
- >>330
ここなんかどうだろ? www.ee.fukui-nct.ac.jp/~yoneda/text/other/C/A_06.htm
- 332 名前:デフォルトの名無しさん [2008/12/11(木) 11:43:59 ]
- >>326
2つともよく分からないまま検索したらMOVEWinfowというのもあるみたいで、if関数を用いて頻繁に座標をずらし振動させることにしました。 こんなんでいいのかな?? マルチすいません。ありがとうございます。
- 333 名前:M [2008/12/11(木) 11:48:46 ]
- >>331
ありがとうございます。 このプログラムをMFCのプログラムにどのように組み込めばいいのでしょうか? あほな質問ですみません。。
- 334 名前:デフォルトの名無しさん [2008/12/11(木) 12:55:47 ]
- >>333
WM_COMMANDメッセージでコマンドを受け取ったら、main関数の中身を実行すれば?
- 335 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 14:11:02 ]
- ファイルの読み書きとほとんど同じだな
やってる内容が理解できれば使えるだろ
- 336 名前:M [2008/12/11(木) 14:27:45 ]
- >>334
それでやってみようと思います。ありがとうございました。
- 337 名前:デフォルトの名無しさん [2008/12/11(木) 16:38:53 ]
- VC++2008使ってます
LogItemという独自クラスを作り、 LogItem item; ListBox.add(item); といったことしてます(単なるリストボックスへの追記)。 表示を変更する際に、 ListBox.add(〜.format("{1}・・・",item.name,・・・)) 等とすると、今度は削除時にいろいろ面倒です。 表示を適切に変更できるものの、削除時は、 ListBox.remove(item)でいけるような (追記時の表示に依存しないような) 簡単な方法はご存じありませんか? 参考になりそうなサイトやキーワードを 教えていただければ幸いです。
- 338 名前:デフォルトの名無しさん [2008/12/11(木) 16:41:26 ]
- 16ピンのPIC16F819のPICを利用してサーボモータや光電センサー、ディスプレイを制御したいのですがBASICのプログラムが分かりません
サーボモータは Futaba S3002 を使用 ・計7個のサーボモータ使用 ・ボタンを押して入力したものをサーボモータに出力〔右に90度⇒左に90度〕 光電センサーは鏡とセンサーの間を通過するのを検出するもので omron E3R-R2E4 を使用 ・コインを検出してカウントする ・6個使用 ディスプレイは数字と文字の両方を表示したいです まとめると、コインを光電センサで検出してその検出したコインをディスプレイに表示する。たまボタンを押すとサーボモータが回転 するものを作りたいです。 この動作をBASICのブログラムで制御させるには、どのようなプログラムにすればいいですか
- 339 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 16:43:58 ]
- >>338
ここはBASICのスレでもPICのスレでもない。
- 340 名前:デフォルトの名無しさん [2008/12/11(木) 19:13:55 ]
- 337です。
自己解決しました。単なる調査不足&ありがちな混乱、でした ※ToStringをオーバーライドすればいいんですね・・・。 ってか。 質問の大半も意味不明でした。正確には「リストボックスにオブジェクトを そのまま追加した時に、表示のみを変更できるようにしたい。」とすれば よかったんでしょうね・・。 お騒がせいたしました。ほかに困っている人の助けになれば幸いです^^;
- 341 名前:デフォルトの名無しさん [2008/12/11(木) 21:14:25 ]
- Visual C++ 2008 Express Editionについての質問です。
Windowsフォームアプリケーションプロジェクトを作成し、 フォームにボタンとpictureBoxを配置しました。 ボタンを押すと、pictureBoxのプロパティで設定した画像の画素値を取得したり 描きこんだりしたいと思い、画像にアクセスする手段を模索することにしました。 どうもpictureBoxクラスから直接画像にアクセスすることはできず、 いったんBitmapクラスに移さないといけないことが分かりました。 これでSetPixel関数を使って、画素値を書き換えることができるようになったのですが、 これをまたpictureBoxに戻して表示することができません。 コードは以下の通りです。(ボタンを押したときの処理関数) Bitmap bmp = pictureBox1->Image; bmp.SetPixel( 10, 10, Color::Red ); pictureBox1->Image = bmp; ← これで型が合わないというようなエラーが出る どのようにすればpictureBoxの画像を加工し、それを表示することができるのでしょうか?
- 342 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 16:23:46 ]
- pictureBox1->Image = Image::FromHbitmap(bmp.GetHbitmap());とかでどう?
- 343 名前:デフォルトの名無しさん [2008/12/12(金) 17:44:23 ]
- すいません。C++でint型の変数ををchar型の配列にキャストして入れる方法ってどうやるのですか?
int iAnswer = 0; int i = 0; char ChAnswer[256]; ChAnswer = (char)i; とやっているのですが、変換できないといわれます。
- 344 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 17:46:28 ]
- ChAnswer[0] = (char)i; じゃないの?
- 345 名前:デフォルトの名無しさん [2008/12/12(金) 17:51:27 ]
- >>344
それだと、例えば123を変換した場合、1だけ変換ということになりそうな気がするのですが・・・違いますか?
- 346 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 18:00:16 ]
- >>345
何でそう思うのか、、もっと基礎からやり直すか 具体的にやりたいこと書いて手取り足取り教わるしかないと思うよ。
- 347 名前:デフォルトの名無しさん [2008/12/12(金) 18:02:26 ]
- >>346
すいません。よく考えてたら頭の中にあったものが2次元配列でした・・・それにしても変な考えですけど。 逝ってきます。
- 348 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 00:30:18 ]
- エスパー回答で言わせてもらえばsprintf()使えばいいと思うよ
- 349 名前:341 mailto:sage [2008/12/13(土) 07:31:03 ]
- >>342
それでできました! ありがとうございました!! しかし、.NET環境でもWin32apiレベルのビットマップハンドルを意識した記述をしないと いけないのはどうなのかと思いました・・・ C++ Builderはもっとシンプルになりますし・・・
- 350 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 09:01:26 ]
- >>341
たぶんこうすればいける。 Bitmap^ bmp = gcnew Bitmap(pictureBox1->Image); bmp->SetPixel(10, 10, Color::Red); pictureBox1->Image = bmp; Imageプロパティの型はImageへのハンドル。 にもかかわらず、341ではコード上Bitmapそのものを渡すようになっている。 本来、BitmapはImageの派生なので、Bitmapのハンドルなら渡せるというわけ。
- 351 名前:341 mailto:sage [2008/12/14(日) 00:49:49 ]
- >>350
.NETでのハンドルという概念があるんですね。 勉強になりました。 ありがとうございました。
- 352 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 03:25:51 ]
- VC2008EEで↓がコンパイルできるようにする
やり方を教えてください。 #include <windows.h> int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR pCmdLine, int showCmd) { return 0; }
- 353 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 03:28:02 ]
- エラーは↓です
1>.\a4.cpp(4) : error C2146: 構文エラー : ';' が、識別子 'WinMain' の前に必要です。 1>.\a4.cpp(4) : error C2065: 'HINSTANCE' : 定義されていない識別子です。 1>.\a4.cpp(4) : error C2146: 構文エラー : ')' が、識別子 'hInst' の前に必要です。 1>.\a4.cpp(4) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>.\a4.cpp(4) : error C2059: 構文エラー : ')' 1>.\a4.cpp(5) : error C2143: 構文エラー : ';' が '{' の前にありません。 1>.\a4.cpp(5) : error C2447: '{' : 対応する関数ヘッダーがありません (旧形式の仮引数リスト?)
|

|