[表示 : 全て 最新50 1-99 101- 201- 301- 2chのread.cgiへ]
Update time : 08/20 22:23 / Filesize : 74 KB / Number-of Response : 314
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【初心者歓迎】C/C++室 Ver.92【環境依存OK】



1 名前:デフォルトの名無しさん [2014/07/31(木) 19:14:13.79 ID:17Xd3Yqq]
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。
※sage禁止です(と代々スレに書いてありますが自己判断で)。

◆ソースのインデントについて
半角空白やTABでのインデントはスレに貼ると無くなります。
そのため、アップローダーに上げるのも手ですが直接貼る場合は、
全角空白か に置換すると見栄えだけはよくなります。
前スレ
【初心者歓迎】C/C++室 Ver.91【環境依存OK】
peace.2ch.net/test/read.cgi/tech/1400394837/

【アップローダー】(質問が長い時はココ使うと便利)
codepad.org/ (コンパイルもできるし出力結果も得られる[]privateをチェック)
ideone.com/ (時間帯によってはcodepadが重い事があるのでここも利用)

2 名前:デフォルトの名無しさん [2014/07/31(木) 19:15:07.44 ID:17Xd3Yqq]
テンプレここまで

3 名前:デフォルトの名無しさん mailto:sage [2014/07/31(木) 21:38:29.86 ID:cIGHixSb]
>>1

4 名前:デフォルトの名無しさん mailto:sage [2014/08/01(金) 07:55:38.07 ID:4+2xbBXr]
>>1乙乙

5 名前:デフォルトの名無しさん mailto:sage [2014/08/01(金) 10:19:34.67 ID:ZbseM8Xc]
また読みもしないのにスレ一覧に加えてしまった。

6 名前:デフォルトの名無しさん [2014/08/01(金) 23:35:44.60 ID:Q1xcVL69]
文字コードについて質問です。
charやWCHARでマルチバイト文字とワイド文字を扱うと学びました。
しかしこれは、いわゆる「文字セット」であって文字コードではありませんよね。
例えばマルチバイト文字にはShift-JISやANSI、cp932、EUC-JPなどがあるみたいですが、標準ではそのような指定はどこにもないように思えます。
マルチバイト文字セット=cp932
ワイド文字=UFT-8
とみなし、それ以外の文字セットは基本的に用いないという暗黙的な了解なのでしょうか。

webページを作成する際には当然だった文字コードの指定が見当たらず不安に思っています。

7 名前:デフォルトの名無しさん mailto:sage [2014/08/01(金) 23:47:26.94 ID:xmbDbUKF]
UTF-8はマルチバイトだよ
マルチバイト文字とワイド文字を変換する時にそれぞれの符号化方式を指定する
さらにOSによっては、ファイルシステムに使用可能な符号化方式が指定されている場合もある

8 名前:デフォルトの名無しさん [2014/08/02(土) 00:02:40.42 ID:yAhCEHKv]
マルチバイトとワイドは一文字長での区別だろ。
機種や環境によって違う。
windowsのUTF-16もWCHARで一文字を表現できないことからマルチバイト的だし。
一文字が一変数に格納可能という条件がワイドで、
一文字に複数変数がないと格納不可能という条件がマルチバイトでは。
一変数の単位が7ビットとか8ビットとか16ビットとか32ビットとかコアな状況でも変わると思う。

9 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 00:09:39.32 ID:qRelH0Iu]
ワイドはPCの内部で、Javaや.netが使っているUTF-16だけで、
マルチバイトはそれら以外すべてで、UTF-8など

10 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 00:19:54.08 ID:TsFH3rUF]
UTF-32!UTF-32!



11 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 00:31:36.16 ID:aXuilSuQ]
今はもう固定長でないUTF-16もwideとよばれてるんじゃよ
ちなみにwchar_tはWindows以外の大半は4バイトな

12 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 00:33:15.75 ID:QyMYNts0]
utfのオリジナルはstarの文字コードセットな

13 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 02:02:12.74 ID:LgAU6+Tw]
>「文字セット」であって文字コードではありませんよね

いいえ、文字セットではありません。
文字コードであり、より正確にはテキストエンコーディングです。

日本語Windowsの場合、
 MBCS: 文字集合=Windows-31Jのアレ、エンコーディング=いわゆるシフトJIS
 ワイド: 文字集合=Unicodeのアレ、エンコーディング=UTF-16

14 名前:デフォルトの名無しさん [2014/08/02(土) 02:06:07.54 ID:yAhCEHKv]
一文字の確保メモリサイズが常に一定がワイドだろ。

15 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 02:08:53.66 ID:ihMKWWqt]
1文字に使うバイト数が1バイトや2バイトと複数あるのがマルチ
1文字に使うバイト数が2バイトのみなのがワイド
Windows以外は知らない

16 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 02:27:56.74 ID:qRelH0Iu]
ワイドには4バイトのサロゲートペアもあるから、
2・4バイト

マルチバイトは、3〜6バイトで(もっと長いのもある?)、
3バイトが多い

17 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 02:29:47.48 ID:LgAU6+Tw]
>>6
>文字コードの指定が見当たらず

Visual C++の設定がユニバーサル文字の場合、
コンパイル時にソースはUTF-8またはシフトJISの仮定の下に解釈され
charはシフトJISに、wchar_tはUTF-16に、TCHARはUTF-16に変換される。
Visual C++の設定がマルチバイト文字の場合、
コンパイル時にソースはUTF-8またはシフトJISの仮定の下に解釈され
charはシフトJISに、wchar_tはUTF-16に、TCHARはシフトJISに変換される。
いずれも実行時はwchar_tの文字はそのままで、
それ以外はコントロールパネルの言語の設定で指定した文字コードで解釈される。

18 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 07:58:58.76 ID:uphwpvI8]
>ワイドには4バイトのサロゲートペアもある
こういう糞レスを見るとUnicodeがencoding formとencoding schemeの
概念を別に分離したのがいかに大切だったかを実感する

19 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 09:08:07.32 ID:2F7KFjBZ]
合成文字

20 名前:6 mailto:sage [2014/08/02(土) 15:23:13.72 ID:4nNjqrDL]
ありがとうございました。



21 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 03:10:05.25 ID:AqnF5WVU]
クラスを使用する時にこのメンバ関数は絶対1回だけ呼ばれるって場合
コンストラクタで自動で呼ぶってのはあり?

22 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 03:23:55.71 ID:rNEZw/2H]
はい

23 名前:デフォルトの名無しさん [2014/08/03(日) 19:38:15.30 ID:ea9Ca7zy]
こんばんは
Visual studio 2013を入れたのでC++のハローワールドをテストしてみたのですが
ビルドが上手くいかず、ヘッダファイルが開けませんと表示されます

2010であればプロジェクトのヘッダファイルの所に使用したいヘッダファイルを入れて、ソースファイルでインクルードしてやればそれで良かったと記憶しています

初期設定を何もしていないのですがそれが原因でしょうか?ネットで調べて見ても情報が得られず困っています

解決方法を知っている方、教えてくれませんか?

24 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 19:41:58.53 ID:yCTzYi3M]
関数の引数の参照が良く分らないのですが、
とりあえず全ての引数に&を付けておくと良いでしょうか?

void func(int &i, double &d, std::string &str)
{
 // ...
}

void main()
{
 int i;
 double d;
 std::string str;
 func(i, d, str);
}

25 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 19:47:43.07 ID:lrcEZtj9]
>>23
エラを張れ

>>24
実質的に*を付けないポインタみたいなもの。

26 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 20:09:02.39 ID:ea9Ca7zy]
>>25
i.imgur.com/7AyiLCS.jpg
一応ヘッダファイルです↓
www.stroustrup.com/Programming/PPP2code/std_lib_facilities.h

27 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 20:28:26.74 ID:F9uiJQaz]
>>26
ヘッダのパスが通ってないだけでしょ

28 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 20:31:49.84 ID:dJ8y5LvH]
>プロジェクトのヘッダファイルの所に使用したいヘッダファイルを入れて
ヘッダファイルが居る位置はソースと同じフォルダじゃないと、
(デフォルトでは)ダメなんじゃなかったっけ?

VSのヘッダーファイルのツリーからファイルの追加で、
ソースがおいてあるフォルダとは余所のフォルダのファイルも指示できるけど
そこへは基本的にパス通ってないから include "" では見えない

29 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 20:38:56.48 ID:dJ8y5LvH]
端的に
 SRC_DIR/hello_wordl.cpp
 SRC_DIR/std_lib_facilities.h
なら通ると思う

 SRC_DIR/hello_wordl.cpp
 SRC_DIR/INCLUDE/std_lib_facilities.h
という位置関係とか
 SRC_DIR/hello_wordl.cpp
 INCLUDE_DIR/std_lib_facilities.h
という位置関係とかで

そのソリューション指示だと依存関係は IDE 管理下で確認できるけど、
コンパイラには ファイル名 から ファイルのある位置を知る術が無いので、
デフォルトのパスから探索して終了する

30 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 20:54:26.56 ID:eFW9hWaw]
バカに複雑な事指示しても理解出来ない。
ヘッダーファイルを新規作成して、std_lib_facilities.hの中身をコヒぺ



31 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 21:20:15.57 ID:AqnF5WVU]
自分でどこにあるかわかってんなら相対パスでもええやん
#include "..\〜\std_lib_facilities.h"

32 名前:デフォルトの名無しさん [2014/08/03(日) 21:23:54.44 ID:ea9Ca7zy]
>>27
>>28
>>29
ありがとうございます、おかげで解決しました。パスが通ってませんでした。
(全く別の所にあってもIncludeの後にヘッダファイルのパスを書くと出来ました!
ソースファイルの上の階層にヘッダファイルがある場合は../../の表現を使っても出来ました!)

>>30
それは(´・_・`)最終手段ですね(´・_・`)

33 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 21:24:55.99 ID:ea9Ca7zy]
>>31
ありがとうございます、それで出来ました!

34 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 21:44:32.68 ID:wVcpRmRy]
いや、むしろ安定の絶対パスだろ

35 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 22:50:17.34 ID:1KfsaatJ]
問題原因の切り分けをするときはまず絶対パスだな

36 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 00:16:53.93 ID:cek/HGoY]
>>35 切り分けできる男
>>34 切り分けできない男

37 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 02:14:34.43 ID:LgeiXwf0]
クラスをnewして失敗した時の動作はどうするのがポピュラー?
・if( == NULL)
・try catch
・他(プロセス強制終了etc)

38 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 02:21:35.90 ID:cy2se7Pq]
そもそもなんでnewするんだ?
先ずはそこからだ。

39 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 02:36:26.93 ID:VfXJ4NBK]
newの失敗は、メモリ不足などのシステム要件のエラーだから、
プログラムでどうこう出来るものではない

メモリを多くするなど、システム要件を満たす環境に、
変えてもらうしかない

40 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 02:38:52.49 ID:NH51Dz+L]
限界はあるけど使用量を少なくするように工夫するぐらいはあるだろ。



41 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 03:23:26.97 ID:LgeiXwf0]
ありがとう

>>38
論点とずれてる気がするが
WM_DESTROYで使用できなくなる機能Aをデストラクタで使用する場合
static宣言してるとWM_DESTROY後にデストラクタが呼ばれて機能Aを使用しようとして停止する
それを回避するために
deleteクラス
→機能A解放
ってやるようにしてる

>>39-40
つまり基本的には失敗=プロセス異常終了でもokと言う事でいいのかな

42 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 05:36:16.73 ID:VfXJ4NBK]
OSにも、2GB以上などのメモリの要件があるのと同じで、
使用条件を満たしていなければ、どこかでシステムダウンする

ただし、プログラムのバグや、何万回も再帰したのなら、
プログラマーの責任

43 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 06:05:08.09 ID:hDvHywGx]
メモリは使い切ってなくても
メモや断片化で希望のサイズが
確保できなくて失敗することがある

44 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 06:23:01.79 ID:UAhHAw7M]
>>37
> クラスをnewして失敗した時の動作はどうするのがポピュラー?

って聞かれたら、ファイルをほぞんするとか、再起動して回復を図るとか、ログ取ってそのまま終了とか... って答えるんだが。
なので、

> ・if( == NULL)
> ・try catch



> ・他(プロセス強制終了etc)

は、レベルが違うように思う。

45 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 12:20:39.89 ID:dahEKpKn]
>>24
カメレス
怖くないっすか

46 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 13:38:12.42 ID:FbNkdJ2c]
少なくとも「プロセス終了。ハンドルされない例外」とユーザーに表示されるのと
「エラーが発生しましたお問い合わせください」と表示されるのでは
ユーザーの怒りの度合いが違う。

どうしようもないので何をしてもいいというのは
犯罪は犯す奴が悪いので警察は要らないという程度に乱暴な発想

47 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 15:44:51.27 ID:hieQ0nGz]
何をしてもいいとはだれも言ってなくないか
プログラム側でメモリ不足をどうしようもないってのは、
カギを閉めても窓を割られたらどうしようもないから、その時は警備会社と警察に任せるよという程度に普通の発想だと思うが

つーかエラー表示をどうしたらいいかって質問でもないしな

48 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 15:59:27.42 ID:jcCYniN9]
問題が発生した瞬間のプログラムの動作
について質問している>>37にたいして
アスペは
「メモリを増やすしかない」
「警備会社に任せて事後処理するのが普通」
などとずれたことを言い出すから困る

49 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 20:48:03.69 ID:UAhHAw7M]
>>48
>>37 の質問自体がちょっとずれてるから無問題

50 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 21:43:04.51 ID:4x8QxR6V]
Windowsで自作のC++のライブラリで、関数実行時のエラーコードをどうするか
悩んでいます。とりあえずwinerror.hで定義されているエラーコードを
そのまま流用する方式で行こうかなと思うのですが、どうでしょうか?
return ERROR_SUCCESS;
みたいに。
他に良い方法ありますか?



51 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 21:47:18.34 ID:NH51Dz+L]
>>50
Windows意外で使わないならそれでもいいんじゃない?

52 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 22:00:41.67 ID:4x8QxR6V]
>>51
レスありがとうございます。
Windows以外でも使う場合は、どうすればよいでしょうか?

53 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 22:02:28.90 ID:LgeiXwf0]
ありがとう

>>42,43,44,46,47
できなかったらその時点でできる終了処理と通知して終了する事にするわ

>>44,49
> ・他(プロセス強制終了etc)
ってのは自分が思いつかない何かがあるかも知れないから書いただけで他意は無いよ
プロセス強制終了はetcつけたからわかると思ったけどあくまで例えね

54 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 22:34:49.43 ID:UAhHAw7M]
>>53
いや、例なのはわかってる

if( ) とか例外はメモリー確保失敗を検出する方法で、プロセス終了はそのあとの動作でしょ?

なので if( ) でチェックしてプロセス終了させるとかのように使うから、選択肢として並べるのはおかしい。

みんな親切だから、多分確保失敗時にどうするのが普通なのかを聞きたいんだろうなと、推測して答えてるんだろうと思う。
だから、誰も if( ) とか try に触れてないでしょ。

もしプロセス云々書いてないなら、好きにしろとか言われて終わってたと思うぞ。

55 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 22:36:00.54 ID:eWAxusEw]
www.buzzword.jp/img/face10.png

56 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 22:55:06.04 ID:LgeiXwf0]
>>54
○○だからifの方が〜
××だからtry catchの方が〜
異常終了前は△△した方が〜
ってのを期待して3つ書いたけど

・判定は(if) or (try catch) どっちが主流か
・判定後から終了までの処理はどんな感じが主流か
って感じの書き方の方がよかったかな

3つから選んでって意味では無かったすまん

if or tryは好きにでいいのかありがとう

57 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 23:17:17.44 ID:zBF47n0e]
少なくともC++ではメモリ確保出来ないときにnullポインタチェックは(new( nothrow)使うのが)一般的ではないな。

58 名前:デフォルトの名無しさん mailto:sage [2014/08/05(火) 05:27:27.61 ID:B8XLPQcD]
デストラクタが走るタイミングを制御したくてnewしたいだけなら、
そもそも確保に失敗することもないような。
それはさて、フェーズに分けて考えるなら、こんなもんだろ。

・検出
try catch

・対処
可能ならダイアログを出して異常終了

59 名前:デフォルトの名無しさん mailto:sage [2014/08/05(火) 05:30:00.42 ID:ANChekkV]
殺人トラクターに見えた

60 名前:デフォルトの名無しさん mailto:sage [2014/08/05(火) 23:23:02.28 ID:P2cYkmKJ]
VBScriptファイルをC++で実行したいのだが、くぐっても良く分らないのだが、
そもそも可能なのか知りたいのだが、可能な場合デバッガーでステップ実行
出来るのかな?



61 名前:デフォルトの名無しさん mailto:sage [2014/08/05(火) 23:31:11.10 ID:JYX/3P/h]
>>60
たぶん自分が何をしたいのかがよくわかってないと思う

ところでくぐるってなんだ?ググるのことか?

62 名前:デフォルトの名無しさん mailto:sage [2014/08/05(火) 23:39:31.76 ID:AfbB56Nf]
VBSをJavaバイトコードかLLVMに翻訳して処理系を作れば?

63 名前:デフォルトの名無しさん mailto:sage [2014/08/05(火) 23:44:05.44 ID:AfbB56Nf]
>>60
「コンパイラ・スクリプトエンジン」相談室16
peace.2ch.net/test/read.cgi/tech/1405822579/

64 名前:デフォルトの名無しさん mailto:sage [2014/08/05(火) 23:48:46.07 ID:P2cYkmKJ]
>>61,62,63
レスありがとさん。
いや、そんな高度な事したいのではなく(やる知識もないので)、
やりたいのは
string s1="VBScriptファイルの1行目";
string s2="VBScriptファイルの2行目";
string s3="VBScriptファイルの3行目";
...
execute_VBScript(s1);
execute_VBScript(s2);
execute_VBScript(s3);
...

的な感じでいいんだけれど。

65 名前:デフォルトの名無しさん mailto:sage [2014/08/05(火) 23:59:50.28 ID:AfbB56Nf]
codezine.jp/article/detail/1827

これはJScriptの場合だが(以下略

66 名前:デフォルトの名無しさん mailto:sage [2014/08/06(水) 00:10:58.30 ID:hW+yaDMz]
>>65
おお、サンキュウ。このページは初めて見る。
ちょっと試してみるわ。

67 名前:デフォルトの名無しさん mailto:sage [2014/08/06(水) 00:28:06.25 ID:hW+yaDMz]
それは砂丘の座敷わらしだろ

68 名前:デフォルトの名無しさん mailto:sage [2014/08/06(水) 00:29:28.55 ID:hW+yaDMz]
ああ、間違えた。

69 名前:デフォルトの名無しさん mailto:sage [2014/08/06(水) 00:43:44.34 ID:ejJORmgK]
なんだこの座敷童。

70 名前:デフォルトの名無しさん mailto:sage [2014/08/06(水) 01:08:15.49 ID:hW+yaDMz]
ちょっと試してみたのだけれど、JScript版をVBScriptに
移植する能力が無いので困っている。



71 名前:デフォルトの名無しさん mailto:sage [2014/08/06(水) 02:24:54.75 ID:Rc+eyo3S]
DLL内の関数で
class {
public:
void func(void);
};
このfuncをexeから利用する事ってどうやればできる?

それともfuncをクラス外に出すのが普通?

72 名前:デフォルトの名無しさん mailto:sage [2014/08/06(水) 03:00:47.98 ID:Wb6IUvWi]
ttp://msdn.microsoft.com/ja-jp/library/81h27t8c.aspx
vsならこれでできる

73 名前:デフォルトの名無しさん mailto:sage [2014/08/06(水) 03:28:23.21 ID:q+H8JIOY]
>>72の方法って、.libでエクスポートする場合に有効な方法で、
.DEFなどによる名前でエクスポートする場合には使えないんじゃなかったっけ?

.libでエクスポートする場合DLLがアップデートされDLL内の(classのメンバ)関数の
アドレスが変わったらそれを使うEXE(やDLLなど)もリビルドが必要。

アプリのプラグインDLLやWindowsUpdateなど、DLLのみ差し替えても
EXE(やDLLなど)をリビルドせずそのまま使える "名前でのエクスポート" で
DLLを実装したいなら、仮想関数テーブルを挟むのがポイントですね。

※              ↓「サクラ」を「sakura」に変えてください(sakuraのURLを書こうとすると「さくらが咲いてますよ。」で書けない)
blackscarecrow.サクラ.ne.jp/junk/C&C++/PP03.htm
のサンプルコードが分かりやすいかも。

間違ってたらすみません。

74 名前:デフォルトの名無しさん mailto:sage [2014/08/06(水) 07:17:14.75 ID:PEaAzLNP]
>アップデートされDLL内の(classのメンバ)関数の
>アドレスが変わったらそれを使うEXE(やDLLなど)もリビルドが必要

んなわけねーだろ

75 名前:デフォルトの名無しさん mailto:sage [2014/08/06(水) 08:24:14.21 ID:3bVUJ5Fe]
>>73
.defはたしかにC++では使えんが、dllexportならC++のクラスやメソッドも名前がexportされるから
別に問題じゃない。
#コンパイラの混在はできないが。
逆に仮想関数はvtable内の位置が変わるとまずいから、よくわかってないなら避けたほうが無難。

76 名前:デフォルトの名無しさん mailto:sage [2014/08/06(水) 08:42:42.67 ID:sXmmxXua]
コンパイラの混在はけっこう不安要素だね
古いVSに新しいVSで作ったDLLが結合できなかったりしそう

77 名前:デフォルトの名無しさん mailto:sage [2014/08/06(水) 08:43:27.11 ID:Wb6IUvWi]
そういう時こそCOMですよ

78 名前:デフォルトの名無しさん mailto:sage [2014/08/06(水) 13:48:02.21 ID:hW+yaDMz]
Win7のVS2013のC++で
MessageBox()を表示した時にタスクバーに表示されるアイコンを
指定する方法ありますか?

79 名前:デフォルトの名無しさん mailto:sage [2014/08/06(水) 13:50:22.52 ID:7Yid+G+a]
メッセージボックスごときがタスクバーに顔を出さないでください

80 名前:デフォルトの名無しさん mailto:sage [2014/08/06(水) 13:53:43.62 ID:hW+yaDMz]
>>79
普通にやったらタスクバーにアイコンが出るんですが。
皆さん、出ませんか?



81 名前:デフォルトの名無しさん mailto:sage [2014/08/06(水) 15:56:18.98 ID:N2WBO7yk]
でない。
hWndを0にするとアプリと重なって出るけど…

82 名前:デフォルトの名無しさん mailto:sage [2014/08/06(水) 16:10:52.00 ID:WSzGEN/V]
質問失礼します。
入力画像が、複数あるテンプレート画像の中のどの画像と最もマッチングしているかをSURFを使って調べるにはどうしたらよいでしょうか。
よろしくお願いします。

83 名前:デフォルトの名無しさん mailto:sage [2014/08/06(水) 16:12:58.71 ID:3t2H8u7I]
MessageBoxに限らず、システムメニュー持ったwindow で
オーナーが NULL なら、タスクバーに積み重なってくけど、
非NULLなら タスクバー上には出ない

84 名前:デフォルトの名無しさん mailto:sage [2014/08/06(水) 16:19:36.33 ID:3t2H8u7I]
>>82
ここいらへん ttp://aidiary.hatenablog.com/entry/20091102/1257167398
から続けて読むともしかしたら

入力画像から得られる 特徴量ベクトル郡Vs
テンプレート画像の 特徴量ベクトル郡Vt x テンプレートの種類分

特徴量ベクトルのつきあわせ

85 名前:デフォルトの名無しさん [2014/08/06(水) 20:02:55.18 ID:hW+yaDMz]
アプリ実行時に使う2キロバイト程のテキストデータを
現状はテキストファイルから読み込んでいる
のですが、それだとまる見えなので、プログラム中に
入れてしまいたいのですが、
char data[]="テキストファイルの中身をここに貼り付ける"
みたいな方法以外にお勧めな方法有りますか?

86 名前:デフォルトの名無しさん mailto:sage [2014/08/06(水) 21:45:58.99 ID:MTWJpzk3]
拡張子を.unkoにする

87 名前:デフォルトの名無しさん mailto:sage [2014/08/06(水) 22:21:35.52 ID:1M326YIX]
>>85
Windows ならまずリソースに入れることを検討するのでは?

88 名前:デフォルトの名無しさん mailto:sage [2014/08/06(水) 22:52:26.07 ID:CTQUcynJ]
データ=リソース
という短絡的発想がバカっぽい

89 名前:デフォルトの名無しさん mailto:sage [2014/08/06(水) 23:03:24.22 ID:Rc+eyo3S]
非難だけして解決策は無いレスは気にしなくていいからな

90 名前:デフォルトの名無しさん mailto:sage [2014/08/06(水) 23:08:55.87 ID:PY3MTauC]
て言うか、プログラムと一体化 ⇒ リソース は珍しくない
>>88 は観点がちょっとおかしい



91 名前:デフォルトの名無しさん mailto:sage [2014/08/06(水) 23:53:57.11 ID:l8HQ1jfJ]
>>89
ブーメラン乙

92 名前:デフォルトの名無しさん mailto:sage [2014/08/07(木) 00:38:43.18 ID:zC3TsviY]
>>88>>90は無限ループ

93 名前:デフォルトの名無しさん mailto:sage [2014/08/07(木) 01:19:10.54 ID:1cACSwRn]
>>92
ループの意味がわからん

>>89>>91 ならまだしも

94 名前:デフォルトの名無しさん mailto:sage [2014/08/07(木) 01:54:45.98 ID:3T9P4myy]
>>85
つ ユーザー定義リソース
何でも抱けるよ

95 名前:デフォルトの名無しさん mailto:sage [2014/08/07(木) 08:15:40.74 ID:OmP50o4u]
>>74,75
そうなんですか。訂正ありがとう。

>>75
名前がエクスポートされるって言っても、
「zzz@@aaa」とか記号の並んだ文字列として…じゃなかったかな?
あと、stdcallにすればコンパイラ混在しても大丈夫では?

たびたびスミマセン。

96 名前:デフォルトの名無しさん mailto:sage [2014/08/07(木) 11:01:52.77 ID:7UtLjkdT]
関数ポインタpFuncがNULLならpDummyFuncを呼びたいんだけど
pDummyFuncがクラスのメンバ関数の場合どうすればいいかな?

97 名前:デフォルトの名無しさん mailto:sage [2014/08/07(木) 11:33:51.91 ID:JKDdryz1]
みなさんありがとうございました。
リソースファイルでうまく行きました。

98 名前:デフォルトの名無しさん mailto:sage [2014/08/07(木) 11:42:42.26 ID:qKlYqGRI]
>>96
std::functionで

99 名前:デフォルトの名無しさん mailto:sage [2014/08/07(木) 13:03:07.98 ID:7UtLjkdT]
>>98
ありがとう

関数ポインタpfuncがNULLの場合何もしないようにするのはどうすればいいかな
typedef VOID (WINAPI *Sample)(VOID)
((Sample)pfunc)()
この場合
if(pfunc == NULL) {
((Sample)pfunc)()
}
とするしかない?

というのは呼ぶ時に分岐するんじゃなくて内部で分岐させるために1つ関数挟んで
BOOL check(result, pfunc)
{
if(pfunc == NULL) {
return FALSE;
}
result = pfunc;
return TRUE;
}

if(((Sample)check(&result, pfunc))() == FALSE){
//nullだった
}
どうにかしてこんな感じにできないかな

100 名前:デフォルトの名無しさん mailto:sage [2014/08/07(木) 13:17:50.40 ID:7UtLjkdT]
前半
正 if(pfunc != NULL)
誤 if(pfunc == NULL)



101 名前:デフォルトの名無しさん mailto:sage [2014/08/07(木) 13:20:19.39 ID:gf97lcsK]
何したいのかわからん
check()の返り値はboolでしょ?
nullチェックはできるようだし何を聞きたいのかも分からん






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<74KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef