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


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

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



1 名前:デフォルトの名無しさん [2008/02/20(水) 12:33:41 ]
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。
※sage禁止です(と代々スレに書いてありますが自己判断で)。
【前スレ】
【初心者歓迎】C/C++室 Ver.48【環境依存OK】
pc11.2ch.net/test/read.cgi/tech/1202141921/
【アップローダー】(質問が長い時はココ使うと便利)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm

738 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:09:18 ]
速度犠牲とか偉そうに言うやつほど、ダメなプログラマ

739 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:10:01 ]
普通の初心者質問には答えないんだなぁ

740 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:11:48 ]
本当に遅くなることばかりじゃないしな。
std::sort が qsort より概して速くなる、というみたいに、
インライン化されると問題ないことも多い。

741 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:14:36 ]
>>738
色んな分野があるって前提で考えてるんだろう?
お前は組み込み系とビジネスソフト開発が同じだと思っているのか?
それにプログラミングしてればみんなプログラマって思考が気持ち悪い
お前見たいのは答える側に回るな

742 名前:デフォルトの名無しさん [2008/02/25(月) 21:14:59 ]
プログラマではないです、ただいろんな分野があってそれに合ったプログラミングがあることくらいはわかっています

でもやっぱり速度は気にしちゃいけないところですか、無駄だと思ってしまうところから直す必要がありそうですね
コンパイラの最適化というのも知らない分野ですし、当分は見通しの良いプログラムを目指してみようと思います

743 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:18:54 ]
まず動くプログラムを書く。
そして遅ければ改善する。
この順だな。

744 名前:696 mailto:sage [2008/02/25(月) 21:19:34 ]
696です。
先ほどのプログラムを訂正したら、
一行ほどしか出力されませんでした。
どこが間違っているのでしょうか。

ttp://www.borujoa.org/upload/source/upload17009.txt

745 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:26:58 ]
これをちょっと弄って横長から縦長にしたいのですが、
いまいち組み方がわかりません。環境はLinuxでコンパイラはgccです。
#includeは省略
#define max 50
using namespace std;
class hist{
private:
string buffer;
int count;
int mat[max],i,j;
public:
int func(char *argv[]);};
int hist::func(char *argv[]){
ifstream fin(argv[1]);
if(!fin)return 0;
for(i=0;i<max;i++)mat[i]=0;
while(fin>>buffer){
count=strlen(buffer.c_str());
for(i=1;i<max;i++){
if(i==count)mat[i]=mat[i]+1; }
}
for(i=1;i<max;i++){
cout<<i;
for(j=0;j<mat[i];j++)cout<<"*";
cout<<'\n'; }
return 0;}
int main(int argc,char *argv[]){
hist hoge;
hoge.func(argv);
return 0;
}


746 名前:696 [2008/02/25(月) 21:28:43 ]
すみません、あげるの忘れてました。
どなたか教えてください。



747 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:32:49 ]
GNU global使えていう話じゃなくて?

748 名前:744 [2008/02/25(月) 21:37:58 ]
>>747
そんなソフトがあったんですかw
ありがとうございます。
しかしそれではコーディングトレーニングにならないので、
ソースコードでよろしくお願いいたします。
どう考えてもイメージがわかないもので質問した次第です。

749 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:44:30 ]
はじめまして

C++でプログラミングをしようと思っているのですが
開発環境等をどうしようか迷っています
将来的には

■ゲームを動かすプログラム(同人やエロゲのアプリ程度)
■補助ソフトやパッチ
■データを暗号化して格納するプログラム

等を作りたいと思っています
何かアドバイスがあればお願いします

750 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:45:47 ]
VC++ でいいっしょ
タダだし

751 名前:744 [2008/02/25(月) 21:48:04 ]
>>749
「C++の勉強したいんだがどの本買って勉強したらいいんですか?」
って聞いてるのと一緒だべ?

752 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:50:19 ]
デザインパターン信者
私にもそんな時期がありました(マジで)

753 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:51:50 ]
80:20の原則があるしな。経験つめばどこがホットスポットなのかが見当つくから、
プロファイルとってそこだけしぼって最適化すればいい。
最初から保守性犠牲にしてまでパフォーマンスチューニングが必要な分野って
限られてると思うよ。

754 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:55:02 ]
>>749
今からC++勉強するよりもおまいは吉里吉里勉強したほうが幸せになれると思う

755 名前:744 [2008/02/25(月) 22:06:01 ]
マイヘッドがクラッシュしてしまいそうなんですが、
エニバディー、ティーチ ミーしてくれませんか?

756 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:16:44 ]
>>752
理解できずに挫折したか。



757 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:16:59 ]
トオルさん帰れよ

758 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:18:58 ]
>>744
関係はないが、とりあえずバッファを buffer_size しか確保してないのに
fgets で filesize 読もうとしてるのはヤバい。

759 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:28:27 ]
>>744
else if(count > 0)

760 名前:744 [2008/02/25(月) 22:29:05 ]
>>758
bufferはstring型でいこうとおもったんですが、
fin>>buffer;でやると、単語読み込みで一行読み込みにはならないし、
fgets(buffer.c_str(),filesize,fin);はコンパイラに怒られるし、
どうしようもないんで駆け込み寺としてここにきました。
たぶんこれも慣れた人なら簡単に直せるんだとは思いますが、
いままでC言語ばっかりやってたもんで、変な癖ついてるんです。


761 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:30:58 ]
getline を知らんのか?

762 名前:744 [2008/02/25(月) 22:32:36 ]
>>761
K&Rにも載ってたんで知ってます。

763 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:32:53 ]
>744
よくわからんが、
一行よむなら、std::.getline( fin, buffer );だが。むろん、finはifstream辺りの必要はある。

初めて"{"が存在する行をみつけたとき、上のifでcount++になって、
下のifも成立してでcount++で2になるんだが、そういうものなのかね?

764 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:33:42 ]
どこのK&Rだ、どこのw

765 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:35:10 ]
>>750
あと必要な物はやる気と根気ですかね?

>>751
"だべ"ってどういう意味ですか?
マルチリンガーじゃないので日本語以外わからないんです、本当にごめんなさい。

766 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:36:48 ]
>>765
キモス



767 名前:744 [2008/02/25(月) 22:43:14 ]
>>759
else ifですか。基本的なところ躓きました。
ありがとうございます。勉強になりました。

>>763
そんな関数があったんですか。
ちょっとgetlineの中をのぞいて使わせてもらいます。

>>764
Cアンサーブックのほうです。
バイブル本とか釣られてやってみたけど、
糞面白んないんで解くのやめました。


768 名前:デフォルトの名無しさん [2008/02/25(月) 22:44:52 ]
可変のchar *のバッファ用意したいとき

string buf (n, '\0' );
&buf0]; ← これはchar*のところへ入れられる

と使うと便利だ 自動で消滅するし

769 名前:744 [2008/02/25(月) 23:06:24 ]
>>768
下のほうhtmlのタグみたいですね。
奥の手っぽいんでどうしようもないときに使ってみます。
ありがとうございました。

770 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:48:16 ]
>>744
さっき、恐らくは想定したと思われる仕様を完璧に満たすソースを書いたんだが、
反応がなかったから会社に置いてきちゃった。次に会社に出るのは3日後なんで、
後で寝ちゃわなければ軽く再現してみるよ。

771 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:57:46 ]
>>770
>次に会社に出るのは3日後なんで

何でだ?

772 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 00:01:47 ]
なんか、「それを記すにはあまりにも2chの投稿制限は厳しい」みたいに
続きそうな文章だなw

773 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 00:08:58 ]
>>749
本体 > VC++
開発用ユーティリティ > TurboC++ Exploer (BCB)
でいいんでないの?
VC++はGUIアプリの構築はそれなりに手間かかるし、BCBは紙芝居の開発じゃ全然VCLの長所が生かせない。

774 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 00:16:21 ]
>>771
単に、明日明後日は客先直行直帰だから。
>>744
手直ししながら、「クラスにする必要ないじゃん」とか
「変数は極力局在化しろよな」とか「マクロシンボルは大文字だろ」とか
「入力にfgets()を使うなら出力はfputs()じゃないか」なんて乗りで
修正してたらこうなった。
#include <cstdio> #include <cstring>
#define BUFFER_SIZE 1000
int func(char *argv[]) {
FILE * fin = fopen(argv[1],"r");
if (fin == NULL) return 1;
unsigned count = 0;
char buffer[BUFFER_SIZE];
while(fgets(buffer, sizeof(buffer), fin)!=NULL) {
if (count == 0) {
if (strchr(buffer,'{') != NULL) {
fputs(buffer, stdout);
count++;
}
} else if (count > 0) {
if (strchr(buffer,'{') != NULL) count++;
if (strchr(buffer,'}') != NULL) count--;
fputs(buffer, stdout);
}
}
fclose(fin);
return 0;
}
int main(int argc,char *argv[]) {
return func(argv);
}

775 名前:744 [2008/02/26(火) 00:36:44 ]
>>774
まぁ人には癖があるからね。
ありがとう。
人と自分のソースを比較するのが、
一番勉強になるよ。

776 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 00:45:12 ]
>>775
>774は常套句の宝庫だと思うよ。fgets(buffer, sizeof(buffer), fin)とか。
>744のクラスは、変数をばら撒くだけでクラスとしては何もしない無意味な設計だったし。
後はあれだな、関数に渡すのはconst char *にしてmain()で予めargcのチェックと
argv[1]の抽出位しておくのが常套手段か。



777 名前:744 [2008/02/26(火) 00:57:36 ]
>>776
途中で配列にしたら楽だろうなぁとかは思ったが、
配列だと途中でサイズの変更が利かないから。
ポインタだと動的メモリの割り当てで適当なサイズに
割り当てできるし、と思っただけです。
別に機能さえあってればどのやりかたでもいいんだけど、
個人的には

stdoutの使い方がいまいちわかんなかったから、
そこが勉強になったのと、マクロの名前が大文字ね。
それ完全に忘れてたから勉強になった。
ありがとうってのは主にそこかなぁ・・・。
クラスは再利用に機能を発揮するから今の段階では必要としていないけど、
あとあと拡張していくにあたって必要になってくるから残しておきました。
確かにこの辺は言わんとわからんかったかもしれない。
突っ込まれたんで補足しておきました。

778 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 05:08:28 ]
>726
ありがとう、ちょっと不安だったんだ。
名前も無いまま渡されるオブジェクトってどうなるんだろ、って。

779 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 05:56:26 ]
ある関数に引数として構造体のポインタを渡し、そこにアドレスをセットして
返してもらうにはどう書けばよいのでしょう?

BOOL hoge( HOGE *ptr )
{
 …略
 ptr = address;
 return TRUE;
}
としても上手く動かないようです。

780 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 06:00:17 ]
>>779
整数を受け取るには整数のポインタを渡す必要がある。
構造体を受け取るには構造体のポインタを渡す必要がある。
構造体のポインタを受け取るには構造体のポインタのポインタを渡す必要がある。

781 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 06:03:19 ]
あ!なるほど。こんな感じでしょうか?
BOOL hoge( HOGE **ptr )

ちなみにC++なのですが、参照渡しを使ってこれは良いのでしょうか?
BOOL hoge( HOGE *&ptr )
一応コンパイルは通るのですが…

782 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 07:25:27 ]
OK

783 名前:デフォルトの名無しさん [2008/02/26(火) 11:34:24 ]
同じクラスなら、別のインスタンスのprivateなデータも参照出来ますよね。継承関係が
ある場合には、親オブジェクトから子オブジェクトを通して親オブジェクトのprivateデータを
参照できたのですが、これってこういうもの?
#include <iostream>
using namespace std;
class test2;
class test {
public:
void func(const test2 &a);
private:
int p;
};
class test2 : public test {
public:
void func2(const test2 &a);
};
void test::func(const test2 &a) {
cout << a.p << endl;
}
test2 T2;
int main()
{
test t;
t.func(T2);
return 0;
}


784 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 11:37:48 ]
そういうもの。

785 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 11:40:09 ]
>>783
というか出来ないとまずいだろ。
コピーコンストラクタとか代入演算子の定義が出来なくなってしまうよ。

786 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 12:06:04 ]
protectedじゃなくてもアクセス出来ちゃうの?



787 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 12:22:23 ]
protectedにすると、さらにtest2からも参照できるようになる

788 名前:デフォルトの名無しさん [2008/02/26(火) 13:01:03 ]
プログラムにZIPを解凍する機能を盛り込みたいのですが、そのような
機能のスタティックリンクできるライブラリをご存じないでしょうか?

環境はVisualC++.net2003です。

789 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 13:07:03 ]
>>788
zlib

790 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 13:30:25 ]
>>783じゃないが試してみたけど
同じクラスのインスタンスへの参照やポインタを持つとアクセス権限ブッチぎれちゃうのか

なんかカプセル化とかそういう面で考えると気持ち悪いというかなんというか
仕様上出来ないと仕方ないと言うのも分かるのだが・・・

791 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 13:33:53 ]
789d

792 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 13:34:46 ]
C++のprivateはクラスプライベートであってインスタンスプライベートの意味ではない

793 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 14:02:36 ]
>>782
すみません、寝てました。返答有難うございます。

ちなみに「ポインタ変数を参照で渡す」と言う意味ならむしろ
BOOL hoge( HOGE &*ptr )
のような気がするのですが、なんで*&ptrなのでしょう?
それが仕様と言われればそこまでですが。

794 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 14:24:18 ]
>>793
kmaebashi.com/programmer/pointer.html
これの応用。
ptrのほうからreference to pointer to HOGEと読める。

795 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 14:26:03 ]
>>793
typedef HOGE * HOGE_PTRしてみれば判る。

796 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 14:37:54 ]
>>794>>795
なるほど。正直きちんと理解できたかは自信ないですが、ちゃんと法則が
あってそうなっているのは分かりました。
どうも有難うございましたm(__)m



797 名前:デフォルトの名無しさん [2008/02/26(火) 14:46:05 ]
vc2008のコマンドラインコンパイラだけ手に入りますか
vc6でコンパイルしたいです
sp1で鈍いパソコンです 

798 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 14:48:16 ]
EEを入れてみたか?

799 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 14:49:23 ]
>>797
コンパイラだけ手に入れるのは無理だが
コマンドラインでの利用はできるよ

800 名前:デフォルトの名無しさん [2008/02/26(火) 14:56:40 ]
sp1にインストールできますか

801 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 15:02:40 ]
>>792
kwsk

according to standard

802 名前:デフォルトの名無しさん [2008/02/26(火) 15:49:24 ]
すみません
DOSの実行ファイルで、標準出力へは書き出されないメッセージを取得する方法ありませんか?
hoge.exe > log.txt
として取得できないやつです 画面には出ます
標準出力、標準エラーの取り方はわかります

803 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 16:09:38 ]
>>802
それのどこがC/C++に関係があるの?

804 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 16:18:38 ]
>>802
つ printscreen

805 名前:デフォルトの名無しさん [2008/02/26(火) 16:34:10 ]
>>803
標準出力はこれで受け取れますが、exeが返す実行結果がとれません

#include <windows.h>

main(){
HANDLE hFile = CreateFile("log.txt",GENERIC_WRITE,FILE_SHARE_WRITE, NULL,CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL );
SetStdHandle(STD_OUTPUT_HANDLE , hFile);

STARTUPINFO si; PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));ZeroMemory(&pi, sizeof(pi));
si.cb = sizeof(si);
si.hStdOutput =hFile ;
si.hStdError =hFile ;
si.wShowWindow = SW_HIDE;

CreateProcess(NULL, "HtoX32c.exe e:\\0.htm ", NULL, NULL, FALSE,0, NULL, NULL, &si, &pi);

WaitForSingleObject(pi.hProcess, INFINITE);
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
CloseHandle(hFile);
}

806 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 16:51:04 ]
HtoX32とやらが標準エラー出力に出している可能性は無い?
そもそも、まさかHtoX32はWindowを持っているアプリケーションなのか?
だとしたら、メッセージフックなどの手段が必要になるよ。
つーか、HtoX32とやらが何ものかにも依るけど同等のプログラムを自分で書いた方が手っ取り早かったりしてね。



807 名前:デフォルトの名無しさん [2008/02/26(火) 16:59:39 ]
HTMLをテキストに変換するプログラムです
ソースが公開されていたり定番のライブラリとかありませんか?

808 名前:デフォルトの名無しさん [2008/02/26(火) 17:03:03 ]
正規表現での消し方のサンプルみながら自分でやってみます

809 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 17:11:51 ]
>>805
support.microsoft.com/kb/190351/ja

810 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 17:15:43 ]
popenを使えたら楽だな
あればだけど

811 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 17:44:11 ]
>>805
そのコードだと、自プロセスの標準出力が hFile になるけど、子プロセ
スの HtoX32c.exe の標準出力はコンソールのままでは?



812 名前:デフォルトの名無しさん [2008/02/26(火) 17:44:15 ]
1つの関数に複数の構造体を渡すことって可能でしょうか?

suruct typedef{
int x,y;
}SAMPLE;
SAMPLE sample;

suruct typedef{
int x,y;
}SAMPLE2;
SAMPLE2 sample2;

void AA(??? *s){
int a = s->x;
int a = s->y;
}

void main(){
AA(&sample);
AA(&sample2);
}
こんな処理をしたいのですが、???の所がわかりません。
良い方法を教えていただきたいです。

仮の構造体を1つ作って、その変数に代入→渡すってやり方だとできましたが
激しく面倒くさい。

813 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 17:52:41 ]
関数オーバーロード、もしくはテンプレート関数でぐぐれ。

814 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 17:54:43 ]
>>812
typedef SAMPLE SAMPLE2;

815 名前:デフォルトの名無しさん [2008/02/26(火) 18:02:57 ]
>>813
>>814
情報ありがとうございます。
テンプレート関数が一番やりたかった事を解決してくれそうでした。
ありがとうございました。

816 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 18:10:58 ]
構造体のメンバを決め打ちするようなテンプレート関数は感心しないな。
テンプレートを使うということはC++で良いので、それならメンバ関数にしてしまった方が良い。



817 名前:デフォルトの名無しさん [2008/02/26(火) 18:22:32 ]
ifstream::readって実際に何バイト読めたか検出できないんですか?
freadみたいにふつうに戻り値が来るのかと思いきや違うみたいですし…。

818 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 18:28:13 ]
つ gcount

819 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 18:29:13 ]
>>817
自己レス。failで少なくとも期待通りの
バイト数読めたかどうかは取得できるのね。

820 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 18:30:30 ]
>>818 と思ったらそんなメソッドがあったか。サンクス

821 名前:デフォルトの名無しさん [2008/02/26(火) 18:31:39 ]
fstreamは重要なところでは使うべきではない
APIのほうがよい

822 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 18:55:55 ]
んなこたーない

823 名前:デフォルトの名無しさん [2008/02/26(火) 19:18:08 ]
fstreamは一社の開発ではないがAPIはMS一社
どのコンパイラでも同じ動作になる
あと3000個とか開けない

824 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 19:18:50 ]
if文って 文字列と文字列を比べることって出来ないですよね?
1 = あいうえお
2 = かきくけこ
3 = さしすせそ
4 = あいうえお
if (a = 1){
}
みたいなことをやりたいのですがどうしたら良いでしょうか?

825 名前:デフォルトの名無しさん [2008/02/26(火) 19:19:44 ]
stringはできる

826 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 19:20:33 ]
> どのコンパイラでも同じ動作になる
コンパイラで差はないかもしれないが・・・



827 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 19:21:41 ]
>>823
んなばかな
APIがMS一社で規定されてるなんて初めて知った
MSはついに世界を征服したのか

828 名前:デフォルトの名無しさん [2008/02/26(火) 19:23:04 ]
Windowsのファイル入出力APIのことを指す

829 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 19:55:08 ]
>>824 strcmpしとけ

830 名前:デフォルトの名無しさん [2008/02/26(火) 21:19:23 ]
CreateProcessしたときに止まらなくなったら停止させたいんですけど
どうやったらいいですか?

831 名前:デフォルトの名無しさん [2008/02/26(火) 21:22:25 ]
ググって解決しました

832 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 21:58:13 ]
マルチスレッドで動かしてる関数って_endthread()書かなくてもreturn;書いてたら
問題ない?

833 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 22:04:41 ]
問題ない。
ところで_beginthreadは使うなよ。_beginthreadexにしろよ。
msdn2.microsoft.com/ja-jp/library/kdzttdcb(VS.80).aspx

834 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 22:15:49 ]
VC6.0です。

__declspec(dllimport) int __stdcall hoge( LPWORD, LPWORD, LPWORD );

という形の関数のアドレスが入る関数ポインタhageを作りたいのですが、
うまく宣言できません。

__declspec(dllimport) int __stdcall (*hage)(LPWORD, LPWORD, LPWORD );
などとやるとコンパイルエラーになってしまいます。

どうすれば宣言できるのでしょうか?

835 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 22:17:26 ]
declspecは関係ないだろ

836 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 22:19:03 ]
関係あるよ



837 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 22:19:32 ]
関数ポインタで悩んだら、typedef

typedef __declspec(dllimport) int __stdcall hogetype( LPWORD, LPWORD, LPWORD );
hogetype hoge;

838 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 22:36:15 ]
関数ポインタの便利さになれすぎてしまって
最近 if を見るたびにすぐ関数テーブル化してしまう。

間違い?







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

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

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