1 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 12:16:11 ] Visual C++入門者・初心者からの質問を、 お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。 ■質問するにあたって ・エラーや警告のときはエラーメッセージを書きましょう。 ・開発環境も書きましょう、特にWindowsForm、MFC、Win32アプリケーションの区別。 ・できるだけ具体的に。 質問の仕方については次のページが大変参考になります。 www.hyuki.com/writing/techask.html ■回答するにあたって ・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。 (MSDNのどの項目だとか、何のキーワードでGoogleするとか) ・ネタや煽りは軽く流しましょう。 過去スレ、関連スレなどは>>2-5 辺り。
196 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 22:25:55 ] 予約語にinterface ってのがあるんだがこれ何? Javaのinterfaceと同じ感じなのか? 言語仕様にはこんなのなかったとおもうんだが
197 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 22:28:58 ] C++/CLIのinterfaceではないだろうか
198 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 22:39:06 ] >>197 調べてみたらそのようですね ありがと
199 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 16:16:26 ] すみません、ゲームをリリース版でコンパイルして実行ファイルを作ってみたんですが MSVCR80.DLLというランタイムに依存してしまうようなんですが このDLLは再配布可能でしょうか?
200 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 19:20:22 ] っ「www.microsoft.com/downloads/details.aspx?FamilyID=32bc1bee-a3f9-4c13-9c99-220b62a191ee&DisplayLang=ja 」
201 名前:デフォルトの名無しさん [2008/11/26(水) 07:43:24 ] プログラミング超初心者で>>23 と全く同じ状況になってしまいました デザイン画面は 「このファイルのデザイナに、デザインできるクラスがないため、デザイナを表示できませんでした。」というエラーが出てしまいます ↓ちなみにこのコードを追加したらなってしまいました private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { //オプションボタン (ラジオボタン) の状態を確認 if (this->radioButtonKisu->Checked == true){ System::Diagnostics::Debug::WriteLine("奇数が選択されました"); }else if(this->radioButtonGusu->Checked == true){ System::Diagnostics::Debug::WriteLine("偶数が選択されました"); }else{ MessageBox::Show("奇数か偶数かを選んでください","お願い"); return; } } 前に成功したビルドの状態に戻せないんでしょうか 最初からやり直せば次に進めるんでしょうか
202 名前:201 mailto:sage [2008/11/26(水) 11:04:56 ] あぁ、自己解決しました…
203 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 20:30:45 ] ゲームを配布しようと思ってるんですが コード生成のMTとMTdって何が違うんですか? Dllが付くものは駄目だということは知っているんですが…
204 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 22:16:31 ] ライブラリが最適化されてるか否か
205 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 23:16:52 ] もう少しわかりやすく説明して欲しいんですが…
206 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 23:26:24 ] デバッグ用じゃないかデバッグ用か
207 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 00:00:34 ] ggrks
208 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 00:45:38 ] じゃあ要するに配布の再はMTを使った方がいいってことですかね?
209 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 00:52:04 ] そういうことにしておけばいいんじゃないですかね
210 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 00:59:05 ] くたばれクソども
211 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 09:56:20 ] MTdはデバッグ用でこれでビルドしたやつ配布すると馬鹿にされる。
212 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 11:39:13 ] >>208 Releaseモードでビルドするんだよ
213 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 16:52:45 ] myfunc.h という名前のヘッダファイルに int max(int x,int y); という関数プロトタイプを宣言し main()があるソースファイルとは別のmyfunc.cppという名前のソースファイルに int max(int x,int y) の定義文を記述しました。 そしてmain()があるソースファイルのはじめに #include "myfunc.h" と記述して動いたのですが、はじめの#include文を消去しても、ヘッダファイルに適当な関数プロトタイプの宣言を追加しても 動きました。(定義はしていません)はじめに#includeを記述する必要はあるのでしょうか。 そもそもヘッダファイルの必要性がよくわかっていないので、教えていただけないでしょうか。
214 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 17:21:44 ] よくわからんが、とりあえず何か消したら念のためビルドのクリーンとかで クリアしてから試してみては。
215 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 18:07:33 ] 普通はヘッダの方は必要に応じて外部参照関数呼び出しを記述 extern int max(int x,int y); で、cまたはcppソースの方にプロトタイプ宣言を入れる cpp内で関数を参照する時、呼び出し側の関数よりも上に本体のコードがあれば プロトタイプ宣言は必要ない。 本体が下にある場合はプロトタイプ宣言が必要。
216 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 00:11:19 ] >>214 ,215 ありがとうございました。いろいろ試してみます。
217 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 12:14:13 ] すいません、はじめてフォームアプリケーションを作ってみようと思ったんですが、 テキストボックスに入力した値がどこに入るのかわかりません。 Messagebox::Showでそれっぽいものを表示してみようとも思ったんですが、 System:::string この型は演算子として使用できません(String[0]とかも)となります。 private: System::Void textBox1_TextChanged(System::Object^ sender, System::EventArgs^ e) {}の中で自分で何かをやるんでようか? 助けてorz
218 名前:217 mailto:sage [2008/11/28(金) 12:16:01 ] MessageBox::Showを書いたのはbuton1_Clickの中です。
219 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 12:21:32 ] なんつーか、それ以前にやることやったほうがいい気がするが。 もしくは本でも読むか。 試しに、buton1_Clickの中に MessageBox::Show(textBox1->Text); とか書いてみ
220 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 12:28:35 ] >>219 ありがとうございました おかげでスーパーハカーになることができました!
221 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 13:34:02 ] >>216 とりあえずmax()の本体を別のcppファイルに移してためしてみるといい ヘッダーの使い方がわかるはずだ
222 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 21:13:21 ] >>221 ありがとうございます。max(int x,int y)が定義されているcppファイルを削除しても動いてしまったので ためしに maxi(int x,int y)に名前を変えたところ、無事(? 動かなくなりました。 using namespace std; を main() があるcppファイルのはじめに記述していたのですが stdの名前空間の中にmaxがあったのが原因だったみたいです。 その後、ヘッダーファイルをincludeしなかったりしてみたりと色々試してなんとなくですがヘッダの意味がわかった気がします。
223 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 21:56:04 ] 日本語でおk
224 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 15:59:58 ] VC++2008無料版を使っています。 class の宣言文でpublic:を記述するとclassの位置までインデントが戻ってしまうのですが、 classの位置より1段階インデントした状態にオートインデントするにはどうすればいいのですか?
225 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 10:19:41 ] USBにエディタを入れて持ち歩きたいんですけど Visual C++ライクなエディタってありませんか? Notepad++Portableは知ってるんですけど、折り畳みがダサいので・・・
226 名前:デフォルトの名無しさん [2008/12/03(水) 01:24:56 ] 実行すると、Debugフォルダがかってに作成されちゃうんですが、仕様ですか?
227 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 05:33:26 ] >>226 仕様です。 どうしても作りたくなければReleaseビルド以外使うな
228 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 08:33:13 ] >>226 プロパティいじれば好きに出来るよ $(OutDir) とか $(IntDir) を好きな名前にしたらいい
229 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 18:13:00 ] ゲーム製作をしていてVC++2008 でコンパイルしています。 コード生成設定をMTdでやると通るのですが、MTでやると以下のエラーが出てしまいます。 LINK : warning LNK4098: defaultlib 'LIBCMT' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。 libcpmtd.lib(xdebug.obj) : error LNK2019: 未解決の外部シンボル __malloc_dbg が関数 "void * __cdecl operator new(unsigned int,struct std::_DebugHeapTag_t const &,char *,int)" (??2@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z) で参照されました。 libcpmtd.lib(xdebug.obj) : error LNK2019: 未解決の外部シンボル __free_dbg が関数 "void __cdecl operator delete(void *,struct std::_DebugHeapTag_t const &,char *,int)" (??3@YAXPAXABU_DebugHeapTag_t@std@@PADH@Z) で参照されました。 C:\Documents and Settings\***\デスクトップ\**\Debug\***.exe : fatal error LNK1120: 外部参照 2 が未解決です。 LIBCMTを無視しても逆にエラーが増えてしまうんですが、どうすればいいでしょうか? ゲーム配布時にはMTdでもMTでもdllが付かなければ問題ないですか?
230 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 18:41:50 ] >>229 libcpmtdはデバッグ用。内部でデバッグ用のmallocとfreeを呼んでるから/MTdじゃないとリンクできない。 リリースビルドならlibcpmtを使う。 ってか、プロジェクトの作成をウィザード任せにすればその辺を自分でいじることなんてないと思うんだけど。
231 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 18:50:34 ] なるほど、debugモードでコード生成する時はMTdで リリースモードでやるときはMTでやるものなんですね 試しにリリースモードでMT生成してみたら通りました。 どうもありがとうございましたー。
232 名前:デフォルトの名無しさん [2008/12/03(水) 20:24:26 ] すいません windowsXP SP2で visual c++ 2005 Express Editionを使っているんですが 以前のエラーのため、Windows Forms Designer Package ({7494682B-37A0-11D2-A273-00C04F8EF4FF}) 以前のエラーのため、Visual Studio Explorers and Designers Package ({8D8529D3-625D-4496-8354-3DAD630ECC1B}) 以前のエラーのため、Visual Studio Explorers and Designers Package ({8D8529D3-625D-4496-8354-3DAD630ECC1B}) 以前のエラーのため、Visual Studio Common IDE Package ({6E87CFAD-6C05-4ADF-9CD7-3B7943875B7C}) というようなエラーが出てしまいます コマンド プロンプトで 'VCExpress /resetskippkgs' を入力しろと出るので試しましたが無理でした 調べたところbeta版がどうこうとあるのですが、自分はそのようなものは入れていません beta版のアンインストーラーを使用しても、該当するものはありませんでした 何か解決策はないでしょうか?
233 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 10:44:16 ] そのエラーは何をする時に出るの?
234 名前:デフォルトの名無しさん [2008/12/06(土) 01:18:55 ] お願いします。 WinXP SP2でVisual c++ 2005 Express Editionです。 UNICODEのIniファイルの情報をGetPrivateProfileStringで取得しようと しているのですが、lpReturnedStringにはlpDefaultの値が入ってしまいます。 IniファイルがANSIのときはうまくいきます。 GetPrivateProfileStringの引数はワイド文字にしているつもりです。 意図的にGetPrivateProfileStringWにしてもダメでした。 UNICODEファイルの際の注意点などあるのでしょうか? ご教授ねがいます。
235 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 01:29:29 ] >>234 INI系の関数はAでもWでもファイルの中身はマルチバイト文字として扱われる。 そのおかげで、Aで書き込んでWで読み取るなんてことができるんだけどね。 もちろん、文字コードの自動判別なんてやっていない。
236 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 10:27:18 ] >>234 > UNICODEのIniファイル 拡張子がINIってだけで中身がUnicodeじゃあ、INIファイルとは呼べ ないシロモノだな。 自分で、CStdioFileクラスのCStdioFile::ReadString()/WriteString() なりを使って、1行ずつ読み込んで文字列処理するコードを書くしか ないな。(w
237 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 12:35:20 ] そうだったのか。 たしかにINIファイルって、ASCIIしか使わないけど……
238 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 13:08:53 ] > INIファイルって、ASCIIしか使わないけど…… んなこたぁない。シフトJISであれば漢字やカナ文字だって使える。 でなきゃ、漢字やカナ文字を含むパス名やファイル名の文字列保存に 使えない。
239 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 13:49:53 ] マジ?シフトJISなら良かったのか。 それは気がつかなかった。今度試してみよう。 ていうか、レジストリ弄りたくなくて、いまだにINIファイル使ってるんだよね。
240 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 14:34:14 ] Windowsフォルダに際限なくINIファイル作られるより、レジストリの方が ずっとマシだと思えるんだが? ログインユーザー単位で設定が分けら れるというメリットもあるし。 第一、レジストリなんて意識せずともWindowsのシステムでいじられ まくりだぞ。
241 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 14:37:53 ] >>239 Shift_JISというか、そこで使っているコードページの文字コード。 欧米ならWindows-1252だし、繁体中国語圏ならBig5という具合。 >>240 ファイルでもApplication Dataあたりに置けば、ユーザ別設定はできる。
242 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 15:03:55 ] >>241 > ファイルでもApplication Dataあたりに置けば、ユーザ別設定はできる。 MFCフレームワークのデフォルト処理を前提に書いてしまった。言われ れば、まぁ確かにそうだ。 ところで、複数インスタンス起動した アプリからiniファイルへの同時アクセスとかって、今は問題ないん だっけか?
243 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 16:50:51 ] たんなるアプリの設定データはWindowsフォルダなんかにつくらんだろ。 自フォルダにINIファイル作るなんて普通じゃないか?フリーソフトなんかは特に。 わざわざ選択肢減らす必要なんてないしケースバイケースでよかろう。
244 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 17:30:28 ] >自フォルダにINIファイル Program Filesに置いたらVistaで問題が出る。 All UsersのAppDataとかでどうか。
245 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 17:41:50 ] >>244 >Program Filesに置いたらVistaで問題が出る。 はじめやりずれーって思ったら他のユーザーでログインしたときを考えたら納得した
246 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 19:27:48 ] >>243 > たんなるアプリの設定データはWindowsフォルダなんかにつくらんだろ。 昔は作りまくりだったんで、レジストリが搭乗したんだが? 今もMFCでCWinApp::SetRegistryKey()呼ばないとiniファイルを使うけど、 iniファイルが作られるデフォルトの場所はWindowsフォルダだよ。 >>244 > All UsersのAppDataとかでどうか。 自分(現在のログインユーザー)用の「マイドキュメント」フォルダの パスはSHGetSpecialFolderLocation()で取得できるけど、これって取れる んだっけ? もしかして決め打ち? それはそれで問題な気もするが? なんて思ったら、 SHGetSpecialFolderLocation(hwndOwner,CSIDL_COMMON_APPDATA,...); でいけるのか。 知らない間にCSIDLずいぶん増えているな。 ttp://msdn.microsoft.com/en-us/library/bb762494(VS.85).aspx
247 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 19:30:24 ] 昔話がしたいだけか。
248 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 19:46:34 ] VistaでProgram Filesのデータを読み書きするのって各ユーザー毎に仮想フォルダ作って 勝手にやってくれんじゃなかったっけ? 具体的にはどういう風になんの? 正直Vistaなんて糞OS使った事もないから知らんが。
249 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 20:20:51 ] 全ユーザー共通のINIファイルじゃないとダメってソフトでも なければさほど問題はなさそうな気もする つかこれってINIファイルに限らず他のセーブデータにも 言える事だろ
250 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 23:21:36 ] 「Program Filesに置いたらVistaで問題が出る。」っていうのは、他の スレでも見たような気がするが、実際何がどう問題なのかわからん。 すくなくとも、exe本体が存在するProgram Files下のアプリケーション フォルダ内にiniファイルを作成して読み書きは問題なく動作している けどな。 Administrator権限以外じゃダメとかなら、Vistaに限らず2000やXP等でも 問題になりそうな気がするし、セキュリティ上、別のログインユーザーに iniファイル内容を見られると困るというなら、All Usersに置いても同じ だと思う。
251 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 23:40:23 ] 別のログインユーザに見られたら困る、じゃなくて 別のログインユーザから見られないから困るんでしょ。 Program FilesやHKLMに無駄に書き込むソフトなんざそもそもマルチユーザを前提としていないので これらの挙動はソフトとしては想定外なわけで。 あと、管理者権限を持つプロセスから呼ばれると仮想ストアじゃないとこから設定ファイル読みに行ってNotFoundとか。 なんにせよUAC程度で不具合出るようなソフトは単純に行儀悪いだけだと思う。
252 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 00:27:46 ] >>251 そうそ Program Filesにおいちゃうとアドミニ権限ないと 書き込めないし見れないんだよね なんでアドミニ権限ないユーザが起動すると落ちるソフトとか結構あったりする
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 文字列の比較に直接 == は使えません。