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


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

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



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

【前スレ】
【初心者歓迎】C/C++室 Ver.67【環境依存OK】
pc12.2ch.net/test/read.cgi/tech/1247937958/l50

【アップローダー】(質問が長い時はココ使うと便利)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm

◆ソースのインデントについて
半角やTABでのインデントはスレに貼ると無くなります。
そのため、アップローダーに上げるのが最も良いですが、
直接貼るのであれば、全角空白か   に置換しておくことをお勧めします。

159 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 18:33:38 ]
>>157
試してないけど
Dll側にSetFunc()を作ってExe側から関数ポインタあげたら?

160 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 18:37:36 ]
>>158
ありがとうございます。やってみます

161 名前:デフォルトの名無しさん [2009/09/28(月) 17:03:06 ]
インクルードするとエラーが出ます。これはどういうことでしょうか・・?
#include <iostream>
#include <string>
#include <fstream>
#include <windef.h>
#include <windows.h>
using namespace std;

int main(){return 0;}

1>------ ビルド開始: プロジェクト: no, 構成: Debug Win32 ------
1>コンパイルしています...
1>a.cpp
1>c:\program files\microsoft sdks\windows\v6.0a\include\winnt.h(5545) : error C2146: 構文エラー : ';' が、識別子 'ContextRecord' の前に必要です。
1>c:\program files\microsoft sdks\windows\v6.0a\include\winnt.h(5545) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\program files\microsoft sdks\windows\v6.0a\include\winnt.h(5545)

162 名前:デフォルトの名無しさん [2009/09/28(月) 17:03:48 ]
: error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\program files\microsoft sdks\windows\v6.0a\include\winnt.h(11263) : error C2065: 'PCONTEXT' : 定義されていない識別子です。
1>c:\program files\microsoft sdks\windows\v6.0a\include\winnt.h(11264) : error C2146: 構文エラー : ')' が、識別子 'ContextRecord' の前に必要です。
1>c:\program files\microsoft sdks\windows\v6.0a\include\winnt.h(11264) : warning C4229: 旧形式が使用されています : データの修飾子は無視されます。
1>c:\program files\microsoft sdks\windows\v6.0a\include\winnt.h(11264) : error C2182: 'RtlCaptureContext' : 'void' 型が不適切に使用されています。
1>c:\program files\microsoft sdks\windows\v6.0a\include\winnt.h(11264) : error C2491: 'RtlCaptureContext' : dllimport データ の定義は許されません。
1>c:\program files\microsoft sdks\windows\v6.0a\include\winnt.h(11264) : error C2059: 構文エラー : ')'
1>c:\program files\microsoft sdks\windows\v6.0a\include\winnt.h(12935) : error C3861: '__readfsdword': 識別子が見つかりませんでした
1>c:\program files\microsoft sdks\windows\v6.0a\include\winbase.h(1020) : error C2146: 構文エラー : ';' が、識別子 'LPCONTEXT' の前に必要です。


163 名前:デフォルトの名無しさん [2009/09/28(月) 17:06:20 ]
1>c:\program files\microsoft sdks\windows\v6.0a\include\winbase.h(1020) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\program files\microsoft sdks\windows\v6.0a\include\winbase.h(1020) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\program files\microsoft sdks\windows\v6.0a\include\winbase.h(4015) : error C2061: 構文エラー : 識別子 'LPCONTEXT'
1>c:\program files\microsoft sdks\windows\v6.0a\include\winbase.h(4023) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\program files\microsoft sdks\windows\v6.0a\include\winbase.h(4023) : error C2143: 構文エラー : ',' が '*' の前にありません。
1>ビルドログは "file://c:\Documents and Settings\user1\デスクトップ\sdk\Debug\BuildLog.htm" に保存されました。
1>no - エラー 15、警告 1
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

以上です。分かる方、お願いします。

164 名前:デフォルトの名無しさん [2009/09/28(月) 17:15:02 ]
環境を書き忘れました
VS2008 C++です。よろしくおねがいします

165 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 17:41:37 ]
ふと思ったのですが
*++p = 'a'; *++p = 'a'; *++p = 'a'; ...

*p++ = 'a'; *p++ = 'a'; *p++ = 'a'; ...
はスピードに違いがありますか。
つまりインクリメントとデクリメントで速度が変わったりしますか。
どちらも1を足すというのはかわりませんが、こっちのほうが効率のよいバイナリが生成されるとか
そういうのがあれば教えてください。

166 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 17:48:52 ]
>>165
環境の提示がないので一般論として考えると、2行目と4行目はインクリメントするタイミングが違うだけ。
6行目はインクリメントとデクリメントの違いだけ。
いずれにしても、有意差が出るほど阿呆なコンパイラも環境もないと思うがね。

167 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 17:50:22 ]
>>165
その例では機能が同等では無くね?



168 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 19:26:44 ]
まあ、一般的な(前置|後置)(インクリメント|デクリメント)の速度の違いだけに
着目してるんじゃないかな。

どうも、前置|後置とインクリメント|デクリメントを混同している節が
見受けられるが……。

169 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 19:48:00 ]
>>161
#include "stdafx.h"
あと氏ね

170 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 20:57:31 ]
まるちスレッドの割り込みって最短でどこまで割り込まれるんですかね?

void func()
{
line1;
line2;
line3;
}

int main(void)
{
line4;
func();
line5;
return 0;
}

上の例で言ったらline4とfunc()の間、func()とline5の間まで割り込まれる?
それともline1、line2、line3の間でも割り込まれる?
1行が終わる間に割り込まれることはある?
a = b = c = d;としたらどこかで割り込まれる可能性はある?

171 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 20:58:35 ]
>>170
いつでもありえます

172 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 21:09:18 ]
> a = b = c = d;としたらどこかで割り込まれる可能性はある?

a = 100; みたいに代入一個でも、アセンブラだと2命令以上になることがあるんで、代入中に割り込まれることもある。


173 名前:spirit mailto:sage [2009/09/28(月) 21:18:32 ]
>>170 行とか演算子とか無関係に割り込まれる。
すなわちb=a+3;の実行中にaを読んでbに書き込む間でも割り込まれる。
さらにa++;の実行中にも割り込まれる。


174 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 21:20:43 ]
さらにマルチプロセッサだと1命令の実行中でも割り込まれる。


175 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 21:29:10 ]
>>169
ありがとうございました。すいませんでした。

176 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 21:31:02 ]
割り込まれまくりなんですね・・・

そうなるとmutexを取得する関数の途中で割り込まれると
バグの元になりそうな気がするんですけど大丈夫なんでしょうかね?

177 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 21:33:11 ]
>mutexを取得する関数

システムコールなので不具合は起きない



178 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 22:16:05 ]
mutexを含むマルチスレッド同期ライブラリは、「このように呼び出すとここから
ここまでは割り込まれないよ」とかそういう細かい仕様がいちいち決まってるので、
それを調べて使うもの。

179 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 22:56:13 ]
画像の任意回転、画像を表示したあとその上に場所指定して画像を合成etc・・・
をCで作る課題が出てるのですが、助けになるような参考書・サイト等ありませんでしょうか
お願いします

180 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 22:59:41 ]
ググレカス^^

181 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 23:47:07 ]
>>180
このスレの意味がなくなる

182 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 00:33:11 ]
DXライブラリでおk

183 名前:デフォルトの名無しさん [2009/09/29(火) 01:49:49 ]
DXライブラリが手っ取り早いな

184 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 01:56:22 ]
DXライブラリ使えばいいと思う

185 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 02:01:26 ]
DXライブラリがいいね

186 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 05:44:20 ]
>>166
ありがとうございます。違いはないとのことで安心しました。

>>168
>どうも、前置|後置とインクリメント|デクリメントを混同している節が
>見受けられるが……。
その通りでしたorz 無知をさらして申し訳ない


187 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 10:25:22 ]
>>186
プリミティブ型ならいいけど、クラスに対する前置後置はだいぶ効率に差ができるから注意しよう



188 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 10:54:27 ]
×だいぶ効率に差ができるから
○効率に差ができる場合もあるから


189 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 11:59:47 ]
別人だがkwsk

190 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 12:18:04 ]
詳しくも何も、後置は原理的に重くなりやすいのが一目瞭然じゃないか?
クラスじゃないなら、見た目の好みとかで後置にしても最適化で前置に置換されることが
期待できるけど、統一感を求めるなら、必要が無い限りは前置で統一した方がいいだろうね。
クラスの時は勝手に最適化で前置に変えたりできないから。

191 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 12:19:41 ]
別にクラスじゃなくて構造体でも演算子オーバーロードしていれば同じことだけどね。

192 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 12:28:00 ]
クラスと構造体は本質的には同じものだよ

193 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 12:29:03 ]
クラスと構造体はほぼ同じだからいちいち説明する必要も無いと思うが

194 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 12:29:48 ]
かぶったし

195 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 12:31:03 ]
共用体とか持ち出してくればまだ芸があったかも。
でも余計うざいだけか。

196 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 12:36:34 ]
>>189
むかしむかし、後置だとインクリメントする前の状態をどこかに保存しておかないといけないのであったとさ

197 名前:デフォルトの名無しさん [2009/09/29(火) 15:34:40 ]
で?



198 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 16:41:01 ]
>>196
えっ? 今は違うの?

199 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 17:34:08 ]
今は技術が発展しているのでそんな事はありません
科学万能の時代が到来したのです

200 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 17:46:33 ]
>>198
可哀想な人…

201 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 18:11:48 ]
it_a = it_b++
とかやったらちょっと面倒なことになる。

202 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 18:50:59 ]
>>199
今はどうなってんのさ。

>>201
どう面倒なことになるのさ。

203 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 19:27:56 ]
自分で調べろw

204 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 19:34:50 ]
ググったけど、出てこない。

205 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 20:44:44 ]
ググレカス。
ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%AF%E3%83%AA%E3%83%A1%E3%83%B3%E3%83%88

206 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 21:29:15 ]
>>196の言いたいことが分かったかも。
後置演算子のオーバーロード方法が無いとcallerが保存しなきゃならなかった、ってことが
言いたいんじゃないのかな。
ところが、普通に考えたらcallerが保存しなくてもcalleeでは保存するコードを書くことに
なるから、端から見ると>>196が何言ってんだか分からない人状態に。
一方>>196は、intを引数にすれば後置になるの知ってるの俺だけかよプゲラッチョ、とか
一人でいい気分になっていた、とか。

207 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 21:32:38 ]
単にreturnの後に処理を入れられないという
言語制約上の問題でしかないね



208 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 23:03:02 ]
>>206
何が言いたいのか分からん。
最適化されない限り、前置の方がコストかかるのは当然で。

>>196のだめなところはツッコミがあるように、むかしむかし、というのを付けてしまったとこ

209 名前:208 mailto:sage [2009/09/29(火) 23:03:59 ]
あああ。前置じゃなくて後置ね。

210 名前:198 202 mailto:sage [2009/09/30(水) 00:31:56 ]
なんだ、やはり、「むかしむかし」が余計か。豪快に釣られたぜw

前置/後置のオーバーロード時の注意点は知っていたが、規格が変わったのかと焦ったぜ。

211 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 02:13:24 ]
誰か円形のHPゲージの描画の方法を教えてくれないか・・・?
細い棒の画像を何回かループさせて徐々に角度をつけて
描画しようと思ってるんだがいまいちうまくいかん。

212 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 02:33:40 ]
pie関数でいけるんでないの。

213 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 02:40:12 ]
pie関数って何ですか?

214 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 03:47:24 ]
塗りつぶし円弧を描画する関数

215 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 03:59:02 ]
それがわからないから聞いているのですが

216 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 04:06:59 ]
え?塗りつぶし円弧が分からないのか?おうぎ形のことだよ。
それで円形のHPゲージの描画ができるとは思えないといってる?
もうちょっと具体的に書いてくれないか

217 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 04:08:44 ]
いまいちうまくいかん程度ならもうちょっとがんばればできるよ
その方向でがんばれ



218 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 04:28:25 ]
その塗りつぶしの円弧の描画のソースを
C++暦半年の俺がわかるように教えるんだ!

219 名前:デフォルトの名無しさん [2009/09/30(水) 04:46:25 ]
Intelコンパイラでコンパイルする際に、#pragma ivdepを使っているのですが、
他のコンパイラでコンパイルした際に、不明なプラグマと警告が出てしまいます。
OpenMPだと、
#ifdef _OPENMP
#pragma omp parallel for
#endif
の様に書いてやれば、対応していないコンパイラで警告を出さないようにできますが、
上記のような場合どのようにしたらよいのでしょうか?


220 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 04:56:52 ]
警告抑制


221 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 05:42:50 ]
www.google.co.jp/search?q=intel+%83R%83%93%83p%83C%83%89+%92%E8%8B%60%8D%CF%82%DD+define

222 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 05:44:14 ]


223 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 06:11:21 ]
>>218
環境

>>219
intelコンパイラであるかどうかをifdefで判断すればよいということ。

224 名前:(マルチポスト) [2009/09/30(水) 06:15:36 ]
的外れは質問かもしれませんが
C++で作られたローカルのプログラムのWinsockからPHPのサーバのプログラムと通信することはできますか?

225 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 06:43:29 ]
>>224
PHPのサーバと言うのは何のこと?

226 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 06:45:40 ]
PHPで書こうと思ってるサーバープログラムです

227 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 07:17:46 ]
なんで出来ないと思ったん?



228 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 08:05:52 ]
>>215
WindowsAPIとかGDIとかでググレ

229 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 08:31:26 ]
>>215
ぶっちゃけるとアニメーションモデル読み込んで再生して終り
中身はHP0〜100%(t=0〜1)までのアニメーションでデザイナに作っておいてもらって
プログラマはHPに応じてアニメーションを進めるだけ

230 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 08:37:55 ]
>>226
PHPでサーバープログラム?
Webサーバに置くスクリプトじゃなくて?

231 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 10:07:18 ]
ここでいいか分からないんですが質問させてください
ちょっと特殊なWindowsプログラミングについてです

いわゆるKERNEL32→LERNEL32の方法で
msvcrt.dllの関数をフックしたいのですが
作成したDLL(仮にXXVCRT.DLLとします)を対象のアプリケーションで
使用するとクラッシュしてしまいます

簡易なテストアプリを作成してXXVCRT.DLLをLoadLibraryして
GetProcAddressでsprintfやmalloc/freeを使う限りは問題ありません
落ちている場所はおそらくRtlEnterCriticalSectionの内部のようで
対象のアプリはマルチスレッド使用なのでそのあたりかとは思うのですが…

XXVCRT.DLLは基本的に
ruffnex.oc.to/kenji/text/listexport/
の方法で作成しています
開発環境はもちろんVC++6.0で標準ライブラリは無視にしてます
なお、対象のアプリはおそらくMinGWでビルドされています

www.codeproject.com/KB/system/api_spying_hack.aspx
ではmsvcrtは特殊であるようなことが書いてありますが
msvcrtのフックはできないものでしょうか?

ヒントやURLを提示していただけるだけでも構いません
より適切なスレがあれば誘導して頂けるのもありがたいです
なにか情報をお持ちの方、お教え願えないでしょうか

232 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 14:25:41 ]
質問です。

boost::spirit です。


rule<> expr = uint_p | real_p;
parse_info<> pi = parse("10.0", expr);

これで、pi.full == true とならないのですが、どうしてでしょうか。


Win7x64 VC++9 boost1.40.0

233 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 15:10:18 ]
>>231
改造とかクラックとかそういうスレないの?

234 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 18:09:05 ]
>>232
real_pとint_pを入れ換えて味噌

235 名前:232 mailto:sage [2009/09/30(水) 18:42:37 ]
>>234
ありがとうございます。
もともと uint を先に持ってきたのは、大きな整数を入力すると、double の精度を
超えた値が丸められてしまうのを防ぎたかったんです。

コードを書き直しました。

bool is_real_value;
double real_value;
unsigned __int64 uint_value;

void IntAction(unsigned __int64 v) { is_real_value = false; uint_value = v; }
void RealAction(double v) { is_real_value = true; real_value = v; }

int main()
{
rule<> expr = (uint_parser<unsigned __int64>()[&IntAction] | real_p[&RealAction]);

parse_info<> pi;

pi = parse("1.0", expr);
ASSERT(pi.full); ASSERT(is_real_value); ASSERT(real_value == 1.0);

pi = parse("12345678901234567890", expr);
ASSERT(pi.full); ASSERT(!is_real_value); ASSERT(uint_value == 12345678901234567890);

pi = parse("123", expr);
ASSERT(pi.full); ASSERT(!is_real_value); ASSERT(uint_value == 123);
}

このコードのままだと、"1.0" の解釈で失敗し、uint_p と real_p を逆にすると、すべて
real として処理されてしまい、ASSERTで止まりまくります。何がおかしいんでしょうか。

236 名前:デフォルトの名無しさん [2009/09/30(水) 19:29:42 ]
draconux.free.fr/download/os-dev/linux0.01/linux-0.01-rm-3.x/linux-0.01-rm-3.3.tgz
このソースコードをmakeしたのですが、
ld -s -x -M -Ttext 0 -e startup_32 boot/head.o init/main.o \
kernel/kernel.o mm/mm.o fs/fs.o \
lib/lib.a \
-o tools/system > System.map
kernel/kernel.o: In function `scrup':
console.c:(.text+0x1ed6): undefined reference to `columns'
console.c:(.text+0x1fad): undefined reference to `columns'
kernel/kernel.o: In function `scrdown':
console.c:(.text+0x2023): undefined reference to `columns'
make: *** [tools/system] Error 1
というエラーが出てコンパイル出来ません。
このエラーを解決したいのですが、どのようにすればいいでしょうか?

237 名前:234 mailto:sage [2009/09/30(水) 19:39:19 ]
>>235
最後まで到達できないのは、rule<> exper=uint_p|real_p;のuint_pでパースが10で成功し、exprが成立するため。そこでパースが終わってしまう。
防ぐには以下の方法がある。
strict_real_pを使うと小数点が無い実数にはマッチしなくなる。
longset_d[P]...を使うと最大長マッチが採用される。
eps_p(P)を使って区切りまでパースしたかを確認できる。




238 名前:232 mailto:sage [2009/09/30(水) 19:51:54 ]
>>237
strict_real_p | uint_p で出来ました。
大変助かりました。

239 名前:デフォルトの名無しさん [2009/09/30(水) 20:00:38 ]
>>236ですが、
開発環境は、Ubuntu,gcc4.1です。


240 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 20:19:42 ]
>>239
いや、だから columns について調べるべきでしょう。

241 名前:デフォルトの名無しさん [2009/09/30(水) 20:26:26 ]
>>240
調べたのですが、解らなかったのでこちらに来ました。前のスレのほうで環境依存スレに行ったほうがいいと言われたというのも一つです。

console.c内にて
#define COLUMNS 80
static unsigned long lines=LINES,columns=COLUMNS;

として定義及び宣言があり、どうしてcolumns変数が出てくるのかが全くわからないのです。


242 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 21:17:02 ]
TCHARからwchar_t *に変換(キャスト)するにはどうしたらよいですか?

243 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 21:25:31 ]
なぜそういうことする必要があるか知らんが…

TCHAR ch;
// ...
wchar_t *p = (wchar_t *)ch;

244 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 21:28:31 ]
>>243
あ、そのままでよかったんですね^^;
センキュー

245 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 21:36:05 ]
>>244
だめだよ。

TCHAR* ch;
// ...
wchar_t *p = (wchar_t *)ch;

なら、いい。

あと、最近のVCは_UNICODEがデフォになってるけど、
古いやつだったら、_MBCSがデフォだから、もしそうだったら、
単純にはキャストできない。

246 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 22:31:17 ]
static unsigned long lines=LINES;
static unsigned long columns=COLUMNS;

247 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 23:37:31 ]
デスクトップの画像はどういう風に取得すればいいんでしょうか?
事務仕事をほぼ全自動でできるようなソフトを作ってみたいと思っているのですが、
とっかかりがつかめません
bitmap形式などは何となくわかったのですが、肝心の画像自体の取得方法が分かりません
APIを使うような感じはするのですが、見つかりませんでした
分かる方、教えてください。お願いします



248 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 23:40:13 ]
>>247
uwsc ってソフトがあるよ

249 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 23:41:52 ]
>>247
GetDC(HWND hWnd);
で、0を渡せば、画面のデバイスコンテキストが取れたような記憶が。

250 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 23:45:09 ]
>>248>>249
ありがとうございます
既にあったのですね、トホホ

なんだか悔しいので、とりあえず作るだけ作ってみることにします

251 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 09:37:37 ]
別に止めはしないが、とても「事務仕事をほぼ全自動でできるようなソフト」を作ろうとする人間の台詞じゃないな。

252 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 09:41:07 ]
そもそも、「デスクトップの画像」と言う当初の質問が自動化とどう関係しているのだろうか

253 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 10:05:49 ]
スクリーンショットを使う事務作業なんていくらでもあると思うけど

254 名前:232 mailto:sage [2009/10/01(木) 12:57:19 ]
boost::spirit でまた躓いてしまいました。


parse_info<> pi;

pi = parse("12.", real_p); // 12. ドットに注意
ASSERT(pi.full);
ASSERT(pi.length == 3); // 止まる。実際は 2 が入っている。

pi = parse("12.", longest_d[real_p | int_p]);
ASSERT(pi.full); // 止まる


デバッガで追うと、確かにドットの後に数値が無ければ、length はインクリメントされてないんですが、
scanner の first (scan.first) はドット文字の次を指したまま return しています。

length と 実際に進めた幅とが一致しない状態というのは許されるんでしょうか?また、上の二つの
parse で、下は失敗するのはおかしいと思うのですが、勘違いでしょうか?

Win7x64 VC++9 boost1.40.0

255 名前:デフォルトの名無しさん [2009/10/01(木) 14:53:49 ]
>>246
申訳ないですが、その書き方ではエラーを解決出来なかったので
グローバル変数として宣言しましたところ、一応はコンパイルが出来ました。

256 名前:デフォルトの名無しさん [2009/10/01(木) 19:44:19 ]
環境はMac OS X 10.5 & Xcode 3.1 (gcc 4.0)です

PreProcessor Macros でマクロを設定してコンパイルはできたのですが
実行すると#ifdef〜#endifでかこった部分が実行されていません
どうすればよいのでしょうか?

257 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 19:51:09 ]
>>256
#ifdefの行をくわしく



258 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 23:39:04 ]
>>256
ifdefで指定してるものがdefされていなかったんでしょう

259 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 00:21:58 ]
unary_functionやbinary_functionってなんのためにどうやって使うんでしょうか?






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

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

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