検索結果 939 件

by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: エラーの意味がわかりません。
返信数: 15
閲覧数: 2622

Re: エラーの意味がわかりません。

ちょっと補足。
softya(ソフト屋) さんが書きました:(2-3)wsprintfはsprintfのワイド文字版WindowsAPIで、ワイド文字についてはUNICODEとマルチバイト文字を調べてみてください。sprintfは文字列を作り出ためのprintfです。
wsprintfは「sprintfまたはswprintf相当のWindowsAPI」ですね。
wsprintfAがsprintf,wsprintfWがswprintf (size_t引数無し)に対応します。
# WindowsのAPIの例に漏れず,UNICODEの有無で切り替わるような#defineが書かれています。
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: winapi32での画像ぶれについて
返信数: 6
閲覧数: 1107

Re: winapi32での画像ぶれについて

エラーが出て通りませんので確認お願いします。 えーっと,Cでコンパイルするためのコードでは? # コードはCと書かれていますし。 COMまわりはCとC++で書き方が違うため,C++でコンパイルすればエラーになると思います。 例えば,最初のエラーの元であるREFIIDは,<guiddef.h>で #ifdef __cplusplus #define REFIID const IID & #else #define REFIID const IID * __MIDL_CONST #endif と定義されています。対応する引数は,Cであれば&IID_IPicture,C++ならばIID_IPict...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: X64コンパイラおよびツール インストール後 入れたい
返信数: 2
閲覧数: 629

Re: X64コンパイラおよびツール インストール後 入れたい

「プログラムと機能」から対象(VS2008 or VC++2008)を選択し,「変更」または「アンインストールと変更」,あとはダイアログに従ってください。
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: cygwin上のcl.exe(MSVC)の使い方について
返信数: 5
閲覧数: 1271

Re: cygwin上のcl.exe(MSVC)の使い方について

単純に二重引用符で囲めばよいのでは?
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: どうしてもコードが作れません(WinSock)
返信数: 84
閲覧数: 10836

Re: どうしてもコードが作れません(WinSock)

サーバー側でclosesocketしている理由は何故ですか。 分かりません。 このサイト をコピペしていじってるだけなので。 ここまで言い切られるといっそ清々しいですが……。 サンプルはサンプルです。 エッセンスは抽出されていますが,それだけで理解するためのものではありませんし,そのまま実用に耐えるものとは限りません。 ちゃんとMSDN等で何をするAPIかを調べることは必須ですし,エラー処理はちゃんとしましょう。 コードを見ている限り,ソケットのレイヤでコードを間違えているためにやりたいことができていないように思えます。 ソケットAPIの呼び出しの戻り値を確認し,失敗していたら必ず WSAG...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: どうしてもコードが作れません(WinSock)
返信数: 84
閲覧数: 10836

Re: どうしてもコードが作れません(WinSock)

TCP/IPでのsocketを使った通信方法を理解してくださいとしかいいようが無いのですが……。
サーバー側でclosesocketしている理由は何故ですか。

とりあえず,MSDN: Getting Started with Winsockのコードを,適宜MSDN読みながら見ていくとよいかと。
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: C++でTwitterクライアント
返信数: 10
閲覧数: 4829

Re: C++でTwitterクライアント

UserStreamsというのは、多分私の考えているものとは違うと思うので、 従来のAPIとほぼ同じ事はできると思いますが. そうでもないです。 まず,beatleさんが書かれている「従来のAPI」,Twitterのドキュメントでは REST API と書かれていますが,これはクライアント側がサーバーに問い合わせる「pull型」のAPIです。 いわゆる「 API制限 」がGET系APIの一部にあります。 それに対して,「 User Streams 」というのは,一度接続するとTwitterから延々とイベント情報が流れてくる「push型」のAPIです。 push型なので,逆に言うと一部の「取っ...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: ~に向かって
返信数: 2
閲覧数: 190

Re: ~に向かって

動かすだけなら三角関数はいらないと思いますよ。 単純に点(x 0 , y 0 )から点(x 1 , y 1 )に時間Tだけかけて移動する時,時間t経過後の位置は, x = x 0 + (x 1 - x 0 ) * t / T y = y 0 + (y 1 - y 0 ) * t / T で算出できます。 速度vが与えられた場合, T = √((x 1 - x 0 ) 2 +(y 1 - y 0 ) 2 ) / v より, x = x 0 + v * t * (x 1 - x 0 ) / √((x 1 - x 0 ) 2 +(y 1 - y 0 ) 2 ) y = y 0 + v * t * (...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: どうしてもコードが作れません(WinSock)
返信数: 84
閲覧数: 10836

Re: どうしてもコードが作れません(WinSock)

とりあえず,TCP/IPでの通信では,一通信で必要なSOCKETは一つです。 一つのSOCKETで,送受信可能になります。 なので,クライアント側で必要なSOCKETは一つ,サーバー側で必要なSOCKETはlisten用に一つと,通信ごとにacceptで払い出されるSOCKETが通信の数だけ,となります。 でもって,行儀良く通信を終了させるために, shutdown (sock, SD_SEND)→0が返るまでrecv→closesocketとする必要があります。 TCP/IPでのC/Sなら,なおさら winsockについていろいろな質問があります。 で書いた WinSock 2.0 プログラ...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: Visual Basic2010 のデータベースの使い方
返信数: 5
閲覧数: 618

Re: Visual Basic2010 のデータベースの使い方

あー,そういえばそんな機能ありましたね……。 Visual Studio 2005でデータベースの更新が反映されない場合には?[VS 2005のみ] - @IT が参考になると思います。 MSDNだと, ローカル データの概要 あたりでしょうか。 テストに便利なように,デフォルトでは作成した.mdfファイルを出力ディレクトリに常にコピーしています。 それをSQL Serverにアタッチ/デタッチする形でデバッグが実行されています。 # アタッチするファイルを接続文字列で指定していたと思います。 Management Studioで[http://technet.microsoft.com/ja...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: UDPデータ損失率
返信数: 82
閲覧数: 9240

Re: UDPデータ損失率

ひとつ思ったのですが,「送信エラー」等の出力時に,WSAGetLastError APIの値は確認していますか。
WSAStartupでも確認せずにループをしているあたり,エラー処理が全然なされていないのではないか,という気がしますが。
# WSAStartupの失敗は致命的なエラー扱いでいいと思う……。
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: メモリの確保と開放について
返信数: 5
閲覧数: 1503

Re: メモリの確保と開放について

使っているのが HeapAlloc と HeapFree なので, ヒープメモリの確保と解放は kernel32.dll が担当する。故に,同一プロセス内であれば利用可能 メモリ空間はプロセスで分断されるため,他のプロセスからは当然ながら利用不可能 となります。 提示されている物は,全て同一プロセス内での話となりますので,全て問題なく動きます。 問題になるのはポインタをプロセス間通信で渡した状態で myfree した場合くらいですが,そもそもそのポインタは渡されたプロセスからは普通には使えないので,そういう状態にはまずならないでしょう。 # ReadProcessMemory とか使えばデータ...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: 参照とinlineとの違い
返信数: 6
閲覧数: 825

Re: 参照とinlineとの違い

inlineと参照はまったく別の話ですが……。


inlineは,関数の実体を関数の呼び出し箇所に埋め込むよう,処理系にお願いするための物です。
参照は,関数にオブジェクトを参照渡しするための物です。
# ポインタはポインタオブジェクトを値渡ししています。

なので,比較対象として意味が無いのですが……。
速度の問題だけでいうなら,fan2の方が通常は速いと思います。
inlineとは関係なく,xが値渡しであるためです。
# 通常,参照の引数は,実装としてはポインタを渡すことになるため,逆参照の回数が増える。
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: 分割コンパイルについて
返信数: 10
閲覧数: 888

Re: 分割コンパイルについて

>関数の外で変数に対する代入はできない A.cppの上らへんに書けば代入できるんですけど、これって関数の中にある扱いなんですか? 代入ではなく,初期化をしていますよね。 初期化は可能です。 初期化と代入は異なります。 # 特に,C++の場合。 例えば歩数の計算をA.cppでして、歩数の合計をSUM(これもA.cppの関数で求める)とすると if(SUM > 5){ break;} としたいわけです。 でも、SUMはmainじゃなくてA.cppのほうで求めた値だから、エラーが起きるじゃないですか。 このSUM(A.cで求めた値)をmainで使いたいということです。 SUMっていうのは,グローバ...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: 分割コンパイルについて
返信数: 10
閲覧数: 888

Re: 分割コンパイルについて

#include A.hと書けば、A.hの中身を最初に書いたことと同じって説明がありましたよね。 正確には, #include "A.h" かと。 としておくと、「:\documents and settings\kk2\my documents\visual studio 2008\projects\gameprog\player.cpp(11) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません c:\documents and settings\kk2\my documents\visual s...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: winsockについていろいろな質問があります。
返信数: 15
閲覧数: 2073

Re: winsockについていろいろな質問があります。

質問をいっぺんに出せたらいいのですが現在進行形で勉強中なので、そういえばこれも、というのがちょくちょく出てきますがお許しください。 個人的には,書籍を買って一度きっちり勉強した方がよい気がします。 私はBerkeley SocketではなくWinSockしか使ったことがありませんし,勉強したのもWinSockの方になりますが……。 私がWinSockについて勉強したのは,古い本ですが, WinSock 2.0 プログラミング―Window Socket APIによるネットワークプログラミングのすべて になります。 同書の 改訂第2版 もありますが,Amazonのマーケットプレイスは現在中古品...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: winsockについていろいろな質問があります。
返信数: 15
閲覧数: 2073

Re: UDPマルチキャストが分かりません

Geekなページ で addr.sin_addr.S_un.S_addr = inet_addr("239.192.1.2"); このアドレスは何を指しているのでしょうか? 予想→サーバーとして使用するPCが接続しているDHCPサーバーのアドレス UDPマルチキャストについての勉強不足ですね。 224/4はマルチキャスト用のIPアドレスです。 で,239/8がある程度自由に使えるマルチキャスト用のアドレスになります。 で,それぞれのマルチキャスト用のアドレスがマルチキャストのグループになります。 今回の場合は,239.192.1.2というグループになります。 このアドレスは,ソフトウェア...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: .NETのwebbrowserで一度に2つのアカウントにログイン
返信数: 7
閲覧数: 6530

Re: .NETのwebbrowserで一度に2つのアカウントにログイン

WebBrowser ControlはIEを使っていると考えて下さい。
# 完全な事実ではないですが……。

このため,永続化されるCookieはプロセス間で共有されます。
セッションCookieであれば共有されませんが。


IEで複数アカウントによる同時ログインが不可能なサイトであれば,
IEやWebBrowserを使った複数アカウントによる同時ログインは不可能です。
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: .exe以外の配布ファイル(音楽・画像)を隠す方法
返信数: 3
閲覧数: 641

Re: .exe以外の配布ファイル(音楽・画像)を隠す方法

Win32自体にリソースという仕組みがあるので,量と使い方によってはリソースで済むかと思います。
まぁ,リソースはWin32の機構であるため,Visual Studioで開いたり,LoadLibraryExとLoadResource等で取り出せますが……。
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: サイズの大きい配列の生成
返信数: 4
閲覧数: 1207

Re: サイズの大きい配列の生成

提示されたプログラムのようにそのまま終了するのであれば問題ないですが,
関数の一部として使うのであれば,a[0] ... a[an - 1]をfreeしていないのは問題になり得ます。
記憶域は残念ながら無限ではないので,突然mallocがNULLを返し,エラー or 誤動作し始めます。

static使えばこの問題はもちろん解決しますし (マルチスレッドを考えない場合),

コード:

for (int i = 0; i < an; ++i) free(a[i]);

コード:

free(a);
の前にいれることでも解決します。
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: 弓兵など遠距離の攻撃範囲の求め方
返信数: 43
閲覧数: 3137

Re: 弓兵など遠距離の攻撃範囲の求め方

解決となっていますし,技術の話ではないですが……。 個人的にSRPGは遊ぶ側として好きなジャンルですが,遊ぶ側からみた場合,数学や物理学に則る必要はないと考えます。 例えば,移動についてマスを単位とする場合,ゲーム中の距離は移動にかかるコストがすべてのマスで同一とみなした状態において,経由するマスの最小数と定義してもゲームは成立します。 # 例に出てきたタクティクスオウガでも,距離はマスの数ですよね。 簡単な方法で,かつ無理を感じさせない方法を考えてみてもよいかと思いますよ。 例えば,「射程範囲は対象が基点より3単位高さ低いと1増える,2単位高さ高いと1減る」という程度でもそれっぽく見えると思...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: C言語でメール送信クライアントを作成しています
返信数: 2
閲覧数: 6789

Re: C言語でメール送信クライアントを作成しています

writeの第三引数は,書き込むサイズなのに,よくわからないサイズが指定されています。
例えばEHLOであれば,
"EHLO (address-literal)\r\n"
の長さを渡すようにしてください。
# sizeofではなくstrlenを利用。

それ以外の点として,SMTPのコマンドは\r\nで終わります。
また,HELOコマンドはDeprecatedです。
reference) RFC 5321 : Simple Mail Transfer Protocol
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: 変数のbyte型への変換手順
返信数: 7
閲覧数: 2731

Re: 変数のbyte型への変換手順

ビッグエンディアンのデータに対しては,エンディアン変換は自前で行う必要があるので注意。
# まじめにネットワークオーダーからホストオーダーへの変換をするならIPAddress.NetworkToHostOrder メソッドあたり。手抜きなら,Array.Reverse メソッドあたり。
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: プロジェクトについて
返信数: 6
閲覧数: 681

Re: プロジェクトについて

  リンカの /SUBSYSTEM オプションで区別されます。 さらに,エントリポイントはリンカの /ENTRY でオプションで指定されますが,デフォルト値は/SUBSYSTEMによって決定されます。 /SUBSYSTEM:Windowsと/SYBSYSTEM:Consoleでは,「コンソールを必要とするか否か」が一番大きな違いになります。    そのコンソールとは 「コンピュータ制御に用いる入出力装置のセット」  とは違う意味合いなのでしょうか? これでは合わないような気がします。  また、「/SUBSYSTEM:Windows」がコンソールを必要とする方なのですか? コンソールを誤解を承...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: プロジェクトについて
返信数: 6
閲覧数: 681

Re: プロジェクトについて

 CLRから選べる4つは全てCLRの特性を持っているということなんでしょうか? つまりソフト配布の際にNET.FRAMEWORKも一緒に配布しなければならない等の 規則を守る必要があるのでしょうか。 CLR以下のものは,C++ではなくC++/CLIを使うためのプロジェクトになります。 C++/CLIはその名の通りCLI上で動くので,CLIの実装であるCLR,つまりは.NET Frameworkを当然利用することになります。 # monoなどの別のCLI実装を利用する場合は別ですが。 ちなみに, ・CLI : 共通言語基盤。ISO/IEC 23271 ・CLR : 共通言語ランタイム。CLIの...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: C++でのポリモーフィズムについて
返信数: 21
閲覧数: 3877

Re: C++でのポリモーフィズムについて

何をもって効率的と定義しているのでしょうか。

C++ は静的型付け言語です。
その前提下において,「統一的な外部インターフェース」を持つクラス群を扱う機構としてC++の仮想関数を使った多態があります。
これを逸脱した物が使いにくいのは当然です。

C++ として普通に使う分に,多態性が使いにくいことはないです。
C++ を他の言語と同じように使おうとするならば,使いにくいこともあると思います。
単純に,言語にあわせて設計をすればいいだけの話ですよ。
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: どんなデータ型(のアドレスでも可)でも保存できる変数ってありますか?
返信数: 76
閲覧数: 3767

Re: どんなデータ型(のアドレスでも可)でも保存できる変数ってありますか?

あれは文字列を実装していないのでコピーしている意味はあまり無いです。文字列を実装してから意味を持ちます。 それとコピーしていなかったら値は不定だと思うのですが? あれ・・・・・・・?違いがあるはずだと思って複数回やってみたのですが、毎回同じのが出力されました。 ちなみに、以下のように文字列を含んでても、コピーしようがしなかろうが結果が変わらなかったです。何故? softya(ソフト屋)が言われている「文字列」はstd::stringのことだと思います。 単純にchar型の配列を構造体に用意したのであれば,問題は起きません。 #include "stdio.h" これは,標準ライブラリのヘッダ...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列をバイナリ化(?)する
返信数: 5
閲覧数: 5110

Re: 文字列をバイナリ化(?)する

std::stringやstd::wstringは,'\0'やL'\0'を要素として持ち得ます。
このため,std::stringを正確に再現するためには,ios_base::binaryを指定して開いたファイルに対して,data()からsize()個の要素を書き出すようにしないといけません。

また,可変長データを読み込むには,
  • 終端文字の定義
  • 長さ
のどちらかがないと,データの終端を認識できません。
なので,size()を先に書き出しておく必要があります。
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: どんなデータ型(のアドレスでも可)でも保存できる変数ってありますか?
返信数: 76
閲覧数: 3767

Re: どんなデータ型(のアドレスでも可)でも保存できる変数ってありますか?

アラインの問題は,元のページ以上に説明するのは難しそうなので省略。 # シリアライズに関していうならば,アラインではなくパディングの問題ではありますが。 loat型はどうやってみればいいのでしょう? 処理系不明ですが,DxLib 使うと言うことは Windows 上なのでおそらく float は IEEE 754 (ISO/IEC/IEEE 60559) の単精度 (binary 32) だと思います。 単精度の浮動小数点数は,1ビットの符号部,8ビットの指数部,23ビットの仮数部からなります。 # エンディアンを考慮した上で32ビット値として見た場合にこの順で並ぶ 詳しくは,Wikipedi...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: windows上で標準入力と受信の両立
返信数: 3
閲覧数: 1093

Re: windows上で標準入力と受信の両立

windows APIを使用して、DOS窓からの標準入力とクライアントから受信した文言を表示するソフトを作成しています。DOS窓から入力した文言を表示させる方法が分かりません。 unixのようにファイルディスクリプタに0でFD_SETするとクライアントから受信が出来なくなります。 Windowsには「ファイルディスクリプタ」というものは存在しません。 Windowsが低レベルで扱うものは「ハンドル」です。 非同期入力は,ReadFileでlpOverlappedを指定するか,ReadFileExでコールバックを指定することで行います。 どのようにすれば、selecet待ちしているファイルディ...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: 現在走っているプログラム(WIN32 API)
返信数: 8
閲覧数: 1236

Re: 現在走っているプログラム(WIN32 API)

標準のタスクマネージャや、その他の同様のフリーソフト等は、NtQuerySystemInformation という非公式APIを使っていると思われます。ntdll.dllに入っているこの関数、個人的に試しに 使ってみたところ、一気にいろいろな情報が取得できて、まさにタスクマネージャのためにある 関数という感じでした。なぜ非公式なのかはわかりません。 非公開ではないと思いますが,利用は非推奨だとは思います (APIの先頭にそう書いてあるので)。 MSDN: NtQuerySystemInformation function Ntなんとか,というAPIは大抵DDK用の,低レベルAPIになります ...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: どんなデータ型(のアドレスでも可)でも保存できる変数ってありますか?
返信数: 76
閲覧数: 3767

Re: どんなデータ型(のアドレスでも可)でも保存できる変数ってありますか?

いくつか問題点がありますが……。 データ長は外部から渡してもらうのがよいと思います。 template使えばsizeofを適用できなくもないですが,論理的なデータ長は物理的なデータ長とは別問題なので。 e.g.) charの配列に文字列が入っている場合,論理的なデータ長はsizeofではなくstrlenで取得する float型の値の実表現はint型等以上に実装依存です。 ISO 60559の32bit単精度浮動小数点数形式が多いとは思いますが,それに限るわけではありません。 int型ですら,実表現はある程度実装依存部分があります (負の数の表し方等)。 バイトオーダーは実装依存です。 1 oc...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: 何処が悪いのか見ていただけますか?
返信数: 5
閲覧数: 497

Re: 何処が悪いのか見ていただけますか?

std::stringをネットワークに流したりしてはいけません。
基本的に,ネットワーク上に流すデータは,octet列にシリアライズして流し,受け取った側でデシリアライズして元に戻す必要があります。
大抵の環境で1octetを表すのに利用するのはchar型になるでしょうから,char型の配列という形にシリアライズすることになると思います。
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: 気になったので・・・
返信数: 8
閲覧数: 853

Re: 気になったので・・・

C自体の機能として,通信のための機能はありません。
ただし,ライブラリとして通信を行える機能がある場合もあります。

SocketやWinSockといったライブラリを使えば,TCP/IPによる通信ができますから,これらのライブラリがある環境であれば使って電子メールの送信は可能です。
# 環境によっては他のライブラリを使うかもしれませんが。
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: 外部参照エラーが起きるが何が原因かわからない
返信数: 7
閲覧数: 2776

Re: 外部参照エラーが起きるが何が原因かわからない

エラーメッセージの通り,Ccontrol::Keyが定義されていないためのエラーです。

コード:

int Ccontrol::Key[256];
という定義を全翻訳単位中に1つも書いていないのでしょう。
クラスのstaticなメンバ変数は,別途定義が必要です。

というわけで,control.cppにでも先の一行を加えて下さい。
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: %E9%BE%8D%E7%A5%9E%E9%8C%B2←こういう文字(?)をC#で
返信数: 4
閲覧数: 549

Re: %E9%BE%8D%E7%A5%9E%E9%8C%B2←こういう文字(?)をC#で

解決していますが……。

エスケープする時のエンコーディングがUTF-8であれば,Uri.EscapeDataStringなどが使えます。
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: FF11みたいなオンラインゲーム を作れるようになるには。
返信数: 45
閲覧数: 22492

Re: FF11みたいなオンラインゲーム を作れるようになるには。

クライアントソフトをC言語で、ゲームサーバをPHPやPerlで書くと送受信データの整合性を取るのが難しいようにも思えるのですが、どうなのでしょう? 通信ですからプロトコルは定めますし (over HTTPだったりover TCPだったりover UDPだったり……PHPならほぼ必然的にover HTTPになりそうですが), データは定められた形式にシリアライズするでしょう。データの整合はとれないのが不思議な状況です。 ブラウザ上でも,サーバーの返すJSONやXML (cretaed by PHP/Java/C#/etc.) をJavaScriptで受け取ってHTMLのDOMを操作する,なんて...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: 参照渡し
返信数: 16
閲覧数: 1291

Re: 参照渡し

どうしたらいいかの前になぜそうなったかを考えましょう。 それがわからなければ,どうすればいいのかはわかりません。 なぜそうなったかを調べる手段の一つは,丹念にコードを追うことです。 このサイズなら机上でも十分だと思いますが, 実際にデバッガ上で動かして一行ずつ進めながら変数の値を確認していく,というのは基本的なデバッグ方法です。 とりあえず机上デバッグ。 3を入力した場合に,fact関数は, 18行目 : i = 0, n = 3, c = 3, n > i : true 20行目 : i = 0, c = 3, c - i = 3, n = 9 18行目 : i = 1, n = 9, c ...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: 参照渡し
返信数: 16
閲覧数: 1291

Re: 参照渡し

yuu さんが書きました:できないですね
自動変数を1個使えばできます。
できないとする根拠はなんなのでしょうか。
# できないと言い切るのは非常に難しいことだと思いますが。

というか,

コード:

int fact(int n, int *result);
とすれば綺麗になるのに,

コード:

int fact(int *n);
に固執する必要も無いと思いますが……。
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: 参照渡し
返信数: 16
閲覧数: 1291

Re: 参照渡し

fact関数の,
  • nの役割
  • 入力としての*nの意味
  • 出力としての*nの意味
  • 戻り値の意味
をちゃんとコメントに書いてみると,頭の中が整理できるかと思います。
これらがちゃんと整理できないまま作ろうとしているために,
yuu さんが書きました:よくわかりません
となっているのだと思います。

そして,このままの関数仕様で作れなくもないですが,入力と出力の引数を分離するよう入れた方が作りやすいと思います。
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: 太陽光発電量の計算をするプログラムを作成中ですが,行き詰まりました
返信数: 9
閲覧数: 1554

Re: 太陽光発電量の計算をするプログラムを作成中ですが,行き詰まりました

strtokは,char *とconst char *を引数にとります。 FILE *であるfpを渡しても,正常に動作しません。 fgetsなどでファイルから一行読み込んで,読んだ文字列をstrtokの第一引数に渡すようにすれば,最初の警告は対処できます。 次に,atofはconst char *を引数にとります。 今回,sはchar [16][60]型ですから,*s[5]のように,二回参照外しをすればchar型になってしまいます。 本来,s[5]などのように,*が付かないのが意に沿った書き方なのではないでしょうか。 # s[5]の配列へ値が代入されていないため,予想ですが。 ついでに,str...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: WINAPI ちらつき防止のダブルバッファが上手くできない
返信数: 10
閲覧数: 6428

Re: WINAPI ちらつき防止のダブルバッファが上手くできない

(1) について,直感ですが……。
UIスレッドとワーカースレッドで,裏画面のデバイスコンテキストを共有しているようですが,UpdateWindowの実行とWM_PAINTをハンドルするタイミングに時間差があるため,
ワーカースレッドで裏画面の更新を行っている最中にWM_PAINTで裏画面の内容を表画面に転送する,というような状況が起きているのだと思います。

ワーカースレッド側でも更新用のデバイスコンテキストを用意して,更新終了時にデバイスコンテキストを入れ替える,というような処理をする必要があるかと思います。
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: サーバーのお勧め
返信数: 6
閲覧数: 683

Re: サーバーのお勧め

「サーバーを作る」というのは,何を目的としていますか。 例えば,静的なHTMLを返すサーバーがテスト用に欲しいのであれば,IISが簡単だと思います。 また,動的なHTMLであっても,ASP.NET (C#/VB) ならばIISですし,PHPもIIS上でホストすることができます。 PowerShellやコマンドライン,web.config等を弄る他に,UIも用意されている点でIISは個人的に初心者でもとっつきやすいと思っています。 # ASP.NET本番環境は, ExpressWeb などのレンタルサーバーを利用するのが一番楽です (ライセンスとか)。 専用のゲームサーバーのような場合だと,So...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: 文字コード変換について
返信数: 7
閲覧数: 1273

Re: 文字コード変換について

チャットのプロトコルとして,文字コードはどのように規定していますか。 特定の文字コードに変換された物を送信するのか,送信側が文字コードを指定してその文字コードで送るのか。 規定していなかったのであれば,規定する必要があります。 # 各クライアントがそれぞれバラバラに送れば,文字化けするのは当然なので。 個人的には,プロトコルに文字コードを規定してしまって,その文字コードになるようにクライアント側が変換して送信するのがよいと思っています。 # 文字コードを送信側が指定する場合でもサーバー側がサーバーで保持する文字コードに変換することになるため。 そして,それはクライアントに対して送信される文字コ...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: TabbedTextOut()関数のタブ設定について
返信数: 3
閲覧数: 418

Re: TabbedTextOut()関数のタブ設定について

解決となっていますが……。 配列の要素数が1個の場合は,その倍数がタブストップ位置 配列の要素数が2個以上の場合は,その位置がタブストップ位置 となります。 タブストップ位置なので,タブ文字があると,次のタブストップ位置まで描画位置が進みます。 int lpnTabStopPositions[] = { 60 }; を使った場合,60ピクセルごと (60, 120, 180, 240, ...) にタブストップが設定されます。 int lpnTabStopPositions[] = { 60, 150 }; を使った場合,60ピクセルの位置と150ピクセルの位置にタブストップが設定されます。 ...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: 複数条件によるソート
返信数: 3
閲覧数: 3219

Re: 複数条件によるソート

①も②も基本的に何もかわりません。 2つのstcData型のオブジェクトの大小関係をどう定義するかだけの話です。 # qsortにしろC++のstd::sortにしろ,オブジェクトの大小関係を基準としたソートなので。 ①であれば, int comparer (const void *x, const void *y) { if (x == y) return 0; // 同一オブジェクトなら等しい if (x == 0) return -1; // xがヌルでyがヌルでないならyが大きい(逆も可) if (y == 0) return 1; // yがヌルでxがヌルでないならxが大きい(逆も可...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: 簡単な問題です。
返信数: 38
閲覧数: 4211

Re: 簡単な問題です。

せっかくなので。 バッチファイルでもできました。面倒なのでエラーチェックは省いています。 # XP以降なら動くはず。Vistaで確認。SET /Aで計算できることが条件です。 @ECHO OFF SETLOCAL IF "%~1"=="" ( SET /P N=N ) ELSE ( SET N=%~1 ) IF "%~2"=="" ( SET /P R=R ) ELSE ( SET R=%~2 ) SET /A N0=0+N 2>nul SET /A R0=0+R 2>nul SET N=%N0% SET R=%R0% SET V=1 :LOOP SET /A V=V*N SET /A N=N...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: サーバーによる複数のクライアントの管理方法について
返信数: 3
閲覧数: 454

Re: サーバーによる複数のクライアントの管理方法について

クライアントはサーバーから得られる情報が全て,と割り切って作るしか無いですし, サーバーはクライアントが必要になる情報を提供する必要があります。 また,クライアントとサーバーが同一の構造体等で情報を管理する必要もありません。 # そもそも,クライアントとサーバーでプログラム言語が別,というのもよくある話かと。 今回の場合だと,最終的にクライアント同士で直接会話をすることを仮定すると,クライアントが知らないといけないのは, サーバーとの接続方法 サーバーとのやりとりをクラス化するなりすることになると思います 現在サーバーに接続しているクライアントの識別情報 名称とIPでもいいですし,名称と一意I...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: double型変数のインクリメント
返信数: 2
閲覧数: 3983

Re: double型変数のインクリメント

標準規格に準じる限り,可能です。 規格には,適用対象について以下のように書いてあります。 ISO/IEC 9899:1999 6.5.2.4 Postfix increment and decrement operators The operand of the postfix increment or decrement operator shall have qualified or unqualified real or pointer type and shall be a modifiable lvalue. ISO/IEC 14882:2003 5.2.6 Increment an...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: C# MeCab わかち解析
返信数: 3
閲覧数: 1339

Re: C# MeCab わかち解析

調べてみると,MeCab.NETの変換部分に問題があるようです。 以下のページによると,P/Invoke部分を書き換えてやれば動くそうです。 ref) Tips/Other/MeCab - Sheltie書庫室 - C#のいろいろ 個人的には,MeCab.NETが元々まともなP/Invoke宣言してないだけ,という気がしないでもない……。 # CallingConvention問題が発生するのは元々のMeCab側で__stdcallを宣言していない,という問題を持っているわけですが。 ---- 2011/10/10T00:32+09:00 更新 ---- ・CallingConversion ...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: hファイル間での構造体の参照
返信数: 4
閲覧数: 1405

Re: hファイル間での構造体の参照

OrangeShot_t *OrangeShot が原因だと思うのですが OrangeShot_t  は別のhファイルに定義してあって、どうすればEnemy.hに参照すれば良いかわかりません。 a案) OrangeShot_tが定義されているヘッダファイルをインクルードすることによって,OrangeShot_tの宣言をします。 仮にOrange.hとして, #include "Orange.h" を4行目のあたりに書いておきます。 基本的にはこの方法を使います。 b案) OrangeShot_tはポインタ型を使っているので,実際には定義が不要です。 なので,Enemy_Maru_Calcの宣...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: フォームアプリケーションのボタン判別について
返信数: 2
閲覧数: 351

Re: フォームアプリケーションのボタン判別について

基本的に,DialogResultはオプションダイアログボックスなどで使うのに最適な解です。 つまり,[OK][キャンセル]を持ち,この2つだけがダイアログボックスを閉じる手段である場合です。 # システムメニューの[閉じる]は[キャンセル]と同等の扱い。右上のxも同じ。 その場合でも,オプションデータ自体は別途受け渡しが必要になります。 上記以外の場合では,Formに終了状態のプロパティを用意し,DialogResult.OKを設定して閉じる,というのが簡単な方法だと思います。 public enum FinishState { NotFinished, UsePattern1, UsePa...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: ランダムに数字を並べる
返信数: 6
閲覧数: 574

Re: ランダムに数字を並べる

同一の値を入れたくない場合だと,シャッフルするのがよいと思います。 [結] 2005年10月 - 結城浩の日記 # 音楽シャッフル・クイズ(解答編) を元に……。 void shuffle(int * array, int length) { int i; /* C99なら各々のfor文の方で宣言すべきかと */ for (i = 0; i < length; ++i) array[i] = i; for (i = 0; i < length - 1; ++i) { int r; int temp; r = i + rand() % (length - i); /* 手抜き。明らかに偏るので注...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: InputBoxについて
返信数: 2
閲覧数: 321

Re: InputBoxについて

Visual BasicにあるInputBoxかなぁ,と勝手に想像して回答。

VBのInputBoxはVBが専用で用意している物であるため,自分でダイアログボックスを用意する必要があります。
まぁ,COMとしてMicrosoft.VisualBasic.dllを取り扱って,Microsoft.VisualBasic.Interactions.InputBoxメソッドを呼び出せるのであれば,
使ってしまうのもよいとは思いますが……。
# C++/CLIを経由する方が流石に簡単。単純なCOMとして使えるかどうかは不明。
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: C++ 動的配列の生成方法
返信数: 5
閲覧数: 800

Re: C++ 動的配列の生成方法

①形式なら,std::vectorで代替することも考慮した方がよいかもしれませんね。
reserve関数でcapacityを正しく設定すれば,再割り当ても抑えられますし。
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: C#からC++の関数を直接CALL可能でしょうか
返信数: 2
閲覧数: 767

Re: C#からC++の関数を直接CALL可能でしょうか

mine さんが書きました:3.C#からC++で作成したDLLを利用する
この方法が普通の方法になります。
ref) MSDN: アンマネージ DLL 関数の処理

他の方法としては,C++/CLIを使ってC++のコードを使えるマネージクラスを作り,
そのDLLをC#から参照設定する方法がありますが,あまり使われないですし,お薦めしません。
# C++/CLIにも色々制限があるので。
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: MP3著作権について
返信数: 3
閲覧数: 1283

Re: MP3著作権について

----追記 (2011-09-08T16:33+09:00) ---- 以下の文は,法律の専門家では無い YuO が個人的な知識を元に記述しています。 正確な法律上の解釈等に関しては,この方面に詳しい専門家に尋ねることをお勧めします。 以下の文の内容の正当性について,記述した YuO および場を提供して下さっている管理人さん,副管理人さん等は一切の責を負いません。 利用や解釈にあたっては,自己の責任のみの下においてお願いします。 ----/追記 (2011-09-08T16:33+09:00) ---- はじめまして、MP3には著作権があるということについてです。 MP3というか,ファイル形...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: リストを用いたスタックのpush関数のセグメントエラー
返信数: 8
閲覧数: 1405

Re: リストを用いたスタックのpush関数のセグメントエラー

突っ込み所満載のコードですが,問題の一点は,単純にnextに有効な値を代入していないが為にnextがあらぬ所をポイントし, push内のwhileループで参照したが為にsegmentation faultとなっているのだと思います。 コードはnextに次の要素またはNULLが入っていることを想定しているので, malloc後,必ずnextにNULLを代入してやることで,このsegmentation faultは解消できます。 # 間違ってもcallocとか使わないこと。ナルポインタ定数の実際の表現が全バイト0だとは規格のどこにも書いていないので。 pushのコードも変だし (なぜ**top?さ...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: 二次配列用のポインタ
返信数: 6
閲覧数: 541

Re: 二次配列用のポインタ

**dis,*dis,dis[1],dis[2][3] は何を示すのでしょう? **dis disが指し示すオブジェクト(int **型)が参照するオブジェクト(int *型)が参照するオブジェクト(int型) dis +-------+ +-------+ +-------+ | int** | -----> | int * | -----> = int = +-------+ +-------+ +-------+ *dis disが指し示すオブジェクト(int **型)が参照するオブジェクト(int *型) dis +-------+ +-------+ | int** | -----...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: perlのサニタイジング
返信数: 6
閲覧数: 1488

Re: perlのサニタイジング

サニタイズ,という言い方だと意味がいろいろ出てくるのですが……。 ref) 高木浩光@自宅の日記 - プログラミング解説書籍の脆弱性をどうするか, 「サニタイズ言うなキャンペーン」とは何か, ASPとかJSPとかPHPとかERBとか、逆だ.. 高木浩光@自宅の日記 - 「逆」にしたERBが登場, 要約版:「サニタイズ言うなキャンペーン」とは, 既にここまで来ている――サニタイズ症候群の末期的惨.. 高木浩光@自宅の日記 - 続・「サニタイズ言うなキャンペーン」とは やりたいことによって行うタイミングは異なりますが,大原則は以下の通り。 入力値検証であれば,最初に行う (入力値誤りは,そもそもそ...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: C言語じゃないだけどー
返信数: 1
閲覧数: 210

Re: C言語じゃないだけどー

Word 2003でのメニューになりますが,
[ツール] - [オプション] / [全般] - 編集記号の表示 [段落記号]
です。Word 2000でも同じ様な感じかと。
# 私にとっては,ないと段落末尾と強制改行を区別できないので不便ですが……。
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: [課題]APIについて教えて下さい
返信数: 5
閲覧数: 2676

Re: [課題]APIについて教えて下さい

参照設定で追加可能なdllは大原則としてアセンブリのみです。 つまりは, C#やVisual Basic,C++/CLI等でビルドされたアセンブリ tlbimp等で作成された,COM相互運用アセンブリ (VSでCOMを参照設定した場合に作られるアセンブリ含む) が追加可能です。 # sgen等もありますが,とりあえず除外。 user32.dllはアセンブリではないため,参照設定で追加できません。 アセンブリでないDLLの関数を呼び出すには,プラットフォーム呼び出し (P/Invoke) を利用します。 MSDN: アンマネージ コードとの相互運用 LockWorkStation 関数の場合, ...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: 指定タイムゾーン時刻データからUTC時刻データへの変換方法
返信数: 3
閲覧数: 883

Re: 指定タイムゾーン時刻データからUTC時刻データへの変換方法

DSTを考えない場合,タイムゾーンがUTC+Nの場合,
・ローカル→UTC : N時間引く
・UTC→ローカル : N時間足す
# UTC-NはUTC+(-N)と考える
になります。DSTはNに対する修正と見なす方が簡単でしょう。

例えば,ESTは
・DST外:UTC-5なので,ローカル→UTCは5時間足し,UTC→ローカルは5時間引く
・DST内(EDT):UTC-4なので,ローカル→UTCは4時間足し,UTC→ローカルは4時間引く
となります。

これを,変換元ローカル→UTC→変換先ローカルという順序で時刻を変換すれば,タイムゾーンの変換ができます。
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: 40pixのHPバーを最大HP、食らったダメージがいくつでも40pixを基準にして何pix減らすか求めたい
返信数: 4
閲覧数: 853

Re: 40pixのHPバーを最大HP、食らったダメージがいくつでも40pixを基準にして何pix減らすか求めたい

DrawGraph(84-((Player.HPMAX-Player.HP)/(Player.HPMAX/40)),314,HPBar,TRUE); //HPバー(HPが減ると左にずれていく) 恐らく,Player.HPMAXやPlayer.HPは整数型だと思いますが……。 その前提で,Player.HPMAXが100, Player.HPが90の時, (100 - 90) / (100 / 40) = 10 / 2 = 5 となります。これは,整数で全てを計算しているために小数部が切り捨てられるためです。 40 * 2 = 80なので,100 - Player.HPが80になると,40px...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: 構文エラーに悩まされています
返信数: 23
閲覧数: 7174

Re: 構文エラーに悩まされています

エラーの起きた行番号も書いてもらえると,読む側にとってわかりやすいです。 error C2106: '=' : 左のオペランドが、左辺値になっていません。 これは,33行目 birth[0].name = "Kerotan0820" ; //表示テストのために代入 で起きているのでしょうか。 data1::nameはcharの配列ですから,「変更不可能な左辺値」です。 # なので,エラーメッセージがちょっとおかしい。わからんでもないですが。 charの配列に文字列を代入することができないので (初期化時除く),charの配列に文字列を設定するにはstrcpy関数を使います。 で,58行目 vo...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: 後置式演算子のオーバーロードについて
返信数: 3
閲覧数: 407

Re: 後置式演算子のオーバーロードについて

MoNoQLoREATOR さんが書きました:なぜ後置式の場合は古いデータを返さなければならないのでしょうか?
必ずしも古いデータを返す必要はありません。
が,演算子のオーバーロード時に演算子の意味を変えることは,普通は行いません。
# iostreamの<<や>>はしばしば批判の対象になります。

組み込み型では

コード:

int n = 10;
int n1 = n++; // n1 は 10, nは11
int n2 = ++n; // n2 は 12, nは12
のように動作するので,それに則って後置した場合は古いデータを返すことが多いです。
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: isnan関数の返り値
返信数: 5
閲覧数: 680

Re: isnan関数の返り値

そのまんま,0でない何らかの整数値です。
# 規格書の表記はnonzero value。
その値は1かもしれませんし,-10かもしれませんが,とにかく0でない値です。
  • 実装側は結果が真である場合,0以外のint型で表しうるどの値を返してもかまいません
  • 利用側は結果を0であるか0でないかのみで判断します
利用側の典型例は,以下のようになります。

コード:

if (isnan(x)) { /* xがNaNの時の処理 */ }

コード:

if (!isnan(x)) { /* xがNaNでない時の処理 */ }
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: VC++ コンソールでコンパイル
返信数: 4
閲覧数: 1445

Re: VC++ コンソールでコンパイル

書いている間に自己解決されたようですが,一応。 それっぽいMakefileを作って同じようにMakeすると  'make'は、内部コマンドまたは外部コマンド、  操作可能なプログラムまたはバッチ ファイルとして認識されていません。 を表示するため、VC++のコンソールコンパイル自体がそういう仕様ではない ようです。VC++統合環境のヘルプやネット上で関連する情報を探していますが、 なかなかみつからず困っています。 VC++ではmakeを使わずに,nmakeを使います。 また,コマンドプロンプトでのビルドに関しては, MSDN: C/C++ ビルドのリファレンス が参考になるかと思います。
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリサンプルが動かない理由がわからない
返信数: 14
閲覧数: 1065

Re: DXライブラリサンプルが動かない理由がわからない

Windows ファイアウォールに許可の受信規則を追加していないということはないですか。
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列置換について
返信数: 1
閲覧数: 377

Re: 文字列置換について

対応表が適用順によっては複数回適用されてしまうような場合は,置換対象文字列の各文字を対応表で置換していく。
そうでない場合はStringBuilderに放り込んで対応表を前からReplace

でよいのでは。文字数から考えるに,それほど時間がかかるとも思えませんし。

reference)
MSDN: StringBuilder.Replace メソッド (Char, Char) (System.Text)
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: 言語 ハードウェアのスピードについて
返信数: 4
閲覧数: 686

Re: 言語 ハードウェアのスピードについて

あたりまえですが、中央装置(CPU)に近い言語の方がスピードが速く 中央から離れていくにしたがって、少しずつではあるけれども、スピードが若干遅くなっているという 仕組みが成り立っているのでしょうか? マシン言語 > アセンブリ言語 > C/C++言語 > OS特有言語(スクリプトなど) > ユーザー操作 という感じに中心部が一番早く、中心部から離れるにしたがって だんだんと遅くなっていくイメージという理解でよかったでしょうか? ユーザー操作が遅いのは確かなのですが,それ以外に関しては難しいです。 まず,間違いなく言える点から。 アセンブリ言語は,マクロや疑似命令などを除くと機械語と一対一で対...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列の分割処理
返信数: 8
閲覧数: 1209

Re: 文字列の分割処理

ルイ子 さんが書きました: 正規表現は使えませんでした。
えーっと,「使えませんでした」の意図するところは何でしょうか。
題意と異なる結果は出ていないはずですが……。
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列の分割処理
返信数: 8
閲覧数: 1209

Re: 文字列の分割処理

とりあえず,文字の分割となると正規表現は基本だよね,ということで書いてみました。 required: .NET Framework 3.5 or later using System; using System.Linq; using System.Text.RegularExpressions; class Program { private static readonly Regex _match = new Regex( @"((""[^""]*"")|[^ ])((""[^""]*"")*[^ ]?)*", RegexOptions.Compiled | RegexOptions.Ex...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: Makefileについて
返信数: 6
閲覧数: 756

Re: Makefileについて

LSI C-86 Ver.3.30 試食版 のユーザーズマニュアルを読みましょう。 同2483行目「5.11.1 例その1」に書かれていることがそのままです。 > このような時には、${...}を使えば、応答ファイルの中身をmakefile中に書くこ > とができます。 # makefile for prog.exe prog.exe : alpha.obj beta.obj gamma.obj delta.obj epsilon.obj \ zeta.obj eta.obj theta.obj iota.obj kappa.obj \ lambda.obj mu.obj nu.obj xi....
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: VBからマルチスレッドDLLをCALLする場合は?
返信数: 9
閲覧数: 3033

Re: VBからマルチスレッドDLLをCALLする場合は?

> VB6から,マルチスレッド対応であるDLL関数の呼び出しは問題ない ... これはマルチコアが「並列」に動くという意味でしょうね。 違います。どこからマルチコアとか並列とかの話が出てきたのか不思議ですが……。 DLL関数がマルチスレッド対応であっても,VB6のアプリケーションからの呼び出しで何らかの問題が起きることは無い,ということを言っています。 ここにおける「マルチスレッド対応」という言葉の定義ですが, 呼び出し側がマルチスレッド化されている場合に,DLLの関数を同時に呼び出しても誤動作しないならばその関数は「マルチスレッド対応」です。 DLLが単一状態しか持てず,状態が変化するよう...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: VBからマルチスレッドDLLをCALLする場合は?
返信数: 9
閲覧数: 3033

Re: VBからマルチスレッドDLLをCALLする場合は?

マルチスレッド対応しないVB6.0からVCで作ったmulti threadを制御する関数を呼び出す場合、 multi threadの機能を果たすことは可能でしょうか。 「機能を果たす」というのが何を意味するのかが不明ですが,それを無視して……。 VB6から,マルチスレッド対応であるDLL関数の呼び出しは問題ない (e.g. Win32 APIの呼び出し) VB6から呼ばれたDLL中で作られたスレッドがDLL中で完結しているのであれば,大原則として問題ない (DllMain相当の中で変なことをすると問題になりますが,VB6がどうなるかはわかりません) VB6から呼ばれたDLL中で作られたスレッ...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: Visual C++
返信数: 12
閲覧数: 717

Re: Visual C++

なので同じ.Net FrameWork)ならC#などで勉強されたほうが分りやすいと思いますよ。 ほんとに初心者なので良く分からないのですが、それはVisual C++を使って学べるものですか? ここの「新・ゲームプログラミングの館」さんでゲームを作る事を目標に勉強し始めたので、こちらのサイトで紹介しているVisual C++で勉強したほうがいいのかな?と思いまして・・・ 「それ」は「C#」にかかるのでしょうか。 そうであれば,答えは「いいえ」です。 Visual C#という別のソフトウェアを使う必要があります。 有償のEditionでは,Visual C++とVisual C# (とVisu...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: HttpSendRequestとHttpQueryInfoについて
返信数: 2
閲覧数: 2015

Re: HttpSendRequestとHttpQueryInfoについて

以前HttpSendRequestを使用してHttpQueryInfoにて返答を取得する HTTP通信プログラムを作り、再度使おうかとソースコードを引っ張り出してきたのですが、 GetLastErrorで 122番「システム コールに渡されるデータ領域が小さすぎます。」が返されます。 単純に,レスポンスヘッダが想定より大きい場合があるだけでしょう。 MSDN: Retrieving HTTP Headers (Windows) のコードにあるように, ERROR_INSUFFICIENT_BUFFER のエラーの場合は,必要サイズだけバッファを確保して再度呼び出すようにしてください。 Win...
by YuO
9年前
フォーラム: C言語何でも質問掲示板
トピック: 配列の先頭要素を指すポインタ自体のアドレスについて
返信数: 24
閲覧数: 2387

Re: 配列の先頭要素を指すポインタ自体のアドレスについて

ちょっと現在規格書を参照できない環境なのですが……。 メモリ領域の特定の場所を指すアドレス値 というのは、「メモリ領域に確保されない」メモリ領域の特定の場所を指すアドレス値 ということでしょうか? これはISO_IEC9899に定義されていますか?処理系依存でしょうか? 確か,「アドレス」という言葉の定義はないはずです。「アドレス定数」という言葉が唯一定義されていたかと。 単項&および単項*演算子のあたりで一応本文中に出てきたりしていた気はしますが……。 「アドレス」を定義するなら,オブジェクトを構成する各バイトを識別するための値でしょうか。 ちなみに,「メモリ」があることは必須条件ではありま...
by YuO
9年前
フォーラム: C言語何でも質問掲示板
トピック: 配列の規格に沿った読み方について
返信数: 4
閲覧数: 704

Re: 配列の規格に沿った読み方について

C99 6.2.5 をふまえると、 two_array は、最初のポインタは*two_array を指しているけど、配列型派生で再帰的に構築された配列型のポインタをたどって、最終的に先頭要素(**two_array)を指しているポインタ(アドレス)を返す。 ということなのでしょうか?? 違います。勝手に6.3.2.1を部分に適用してはいけません。 two_array array of array of char (array to pointer conversion) pointer to array of char としかなりません。 配列もれっきとしたオブジェクトであることが抜けていま...
by YuO
9年前
フォーラム: C言語何でも質問掲示板
トピック: 配列の規格に沿った読み方について
返信数: 4
閲覧数: 704

Re: 配列の規格に沿った読み方について

そうすると、 char array[5] = "abcd"; で1次元配列の array[0] なら array[0] → (*(array)) を演算子の優先順位に従い array → 配列オブジェクトの先頭の要素へのポインタ * → 配列オブジェクトの先頭の要素へのポインタを間接参照 = 先頭の要素( = 'a') と規格通りに読むことが出来るのですが、2次元配列の two_array[0][0] を[C99 6.3.2.1]の通りに読むと、 two_array[0][0] → (*(*(two_array))) を演算子の優先順位に従い two_array → 配列オブジェクトの先頭の...
by YuO
9年前
フォーラム: C言語何でも質問掲示板
トピック: 文字の表示について
返信数: 3
閲覧数: 953

Re: 文字の表示について

文字の縁を白色にして表示させたいんですが、なにか方法はあるのでしょうか? 私自身は手段を持っていませんが,GDIとGDI+の場合について参考になりそうなページを見つけたので。 GDIの場合 リージョンとパス from 覚書いろいろ 記述はDelphi言語ですが,APIの呼び出し記述なのでそのままCでも使えるはずです。 GDI+の場合 伊勢的新常識 - GDI+で縁取り文字列を描画する あと,縁取り関係で アプリケーションの文字を見やすくするテクニック | Tech Fielders コラム (Tech・ED 2010 JapanのLTの解説) も読んでおくと役に立つかもしれません。 # WP...
by YuO
9年前
フォーラム: C言語何でも質問掲示板
トピック: フォントの入ってないPCではどうなる?
返信数: 5
閲覧数: 601

Re: フォントの入ってないPCではどうなる?

ちなみに,GDIにおけるSelectObject時のフォント選択は,最優先はlfFaceNameではなくlfCharSetです。 つまり,lfCharSetとして正しくない値を指定すると,lfFaceNameに正しいフォント名を指定したとしてもそのフォントは選択されません。 いい加減,Windows 3.1時代の記事へのリファレンスは正しいのか疑問ではあるのですが,GDIのペナルティ情報は1992年の記事である, Windows Font Mapping が最新のようなので,リファレンスとしてリンクをはっておきます。 この資料を見ると,他にもlfFaceNameよりもlfPitchAndFam...
by YuO
9年前
フォーラム: C言語何でも質問掲示板
トピック: C#への移植
返信数: 3
閲覧数: 463

Re: C#への移植

delegateを使うのですが,実際問題としてdelegateを定義する必要はありません。
今回だと元がvoid (*)(int)型ですから,Action<int>型として定義することになります。

コード:

var _enemyPattern = new Action<int>[]
{
    EnemyPattern1, EnemyPattern2, /* ... */ , EnemyPattern10
};
呼び出しはC#では単純に関数呼び出しと同様に括弧演算子で行います。

コード:

_enemyPattern[pattern](value);
by YuO
9年前
フォーラム: C言語何でも質問掲示板
トピック: 関数がわからん
返信数: 15
閲覧数: 763

Re: 関数がわからん

>>すいません。はんなりさん、このリンクなんですか? by softya(ソフト屋) グローバル変数のデメリットに関するまとめてあったサイトのURLを貼りました。 ウイルスの類ではありませんが、問題あるなら消します。 http://bit.ly/mtHmZh+ によると, http://sj6.org/グロãƒ%20...%203ãƒ%20«変数の弊害ã%20«ついて/ へのリンクですが,リンクが不正確ですね (404 NOT FOUND)。 残された文字列から想定するに, http://sj6.org/グローバル変数の弊害について/ が正しいURLでだと思います。 短縮URLは,本当の...
by YuO
9年前
フォーラム: C言語何でも質問掲示板
トピック: JavaScript 画像ロード?
返信数: 6
閲覧数: 1216

Re: JavaScript 画像ロード?

UPする前にとりあえずローカルで試してみたいのですが、 http://windows.php.net/download/ のver.5.3のインストーラー(どちらか分からなかったので両方)をダウンロードしてきてインストールするだけではダメなのでしょうか? IIS7以降 + FastCGI有効な環境下であれば問題なかったような覚えがありますが……。 各種Webサーバーにあわせた設定については, PHP: Windows システムへのインストール - Manual を参照してください。 なお,公式サイト以外の場所で探すと,php.iniをC:\Winodwsなどのシステムディレクトリにコピーする...
by YuO
9年前
フォーラム: C言語何でも質問掲示板
トピック: C++の書き方が変わったとか・・
返信数: 5
閲覧数: 730

Re: C++の書き方が変わったとか・・

ちなみに,<iostream.h>に対応しているVisual Studioは.NET (通称2002) までです。
Visual Studio.NET 2003から,<iostream.h>が付属しなくなりました。
# なんてことを,別の掲示板で書いたことがあります。
ちなみに,公式のドキュメントでは,標準 C++ ライブラリへのアップグレードに<iostream.h>が付属しないことが記述されています。
VS 2008では既に<iostream.h>が使えないはずなのですが……。
by YuO
9年前
フォーラム: C言語何でも質問掲示板
トピック: ファイル分割の仕方
返信数: 6
閲覧数: 579

Re: ファイル分割の仕方

MASSA さんが書きました:ところで、extern宣言を使うと、その変数を検索する処理が入るんですよね?
処理速度への影響はどの程度あるのでしょうか…
外部宣言の最終的な解決は,リンカの仕事になります。
なので,リンクの速度への影響はありますが,実行速度への影響はありません。
ただし,物理的なメモリ配置によるキャッシュへの影響から来る実行速度への影響は除きます。
# 同一翻訳単位の定義の方が物理的にまとまって配置されることが多い。
by YuO
9年前
フォーラム: C言語何でも質問掲示板
トピック: HTTP通信、POSTについて
返信数: 6
閲覧数: 2255

Re: HTTP通信、POSTについて

くろねこ さんが書きました:コードを以下の様に変更し、実行してみましたが、やはり上手く動作しませんでした。
sendについてですが独自関数にて最後まで送信するようにしてあります。
ブラウザでアクセスした場合と通信内容が異なったりしませんか。
私はHTTP通信の確認にFiddlerを使っていますが,
Fiddlerその他を使ってブラウザでの通信の内容をキャプチャして,その出力と自分が出力している内容を比較してみてはどうでしょう。
# Content-Typeの未指定が気になるところではあります。

あと,PHP側でログを出力してみるのも手だと思います。
by YuO
9年前
フォーラム: C言語何でも質問掲示板
トピック: コマンドラインでのファイル名の取得
返信数: 3
閲覧数: 381

Re: コマンドラインでのファイル名の取得

MSDN: PathUnquoteSpaces Function (Windows)
http://msdn.microsoft.com/en-us/library ... S.85).aspx
を使う,というのはどうでしょうか。
by YuO
9年前
フォーラム: C言語何でも質問掲示板
トピック: HTTP通信、POSTについて
返信数: 6
閲覧数: 2255

Re: HTTP通信、POSTについて

現在C言語,winsockによるHTTP通信を使用し、WEBサーバーにデータを保存するプログラムを組んでいるのですが、 サーバー側PHPへのデータPOSTが上手くいきません。 普通に送信するだけなのですが……。 char buf[32]; memset(buf, 0, sizeof(buf)); _snprintf(buf, sizeof(buf), "POST /action/msg.php HTTP/1.0\n\n"); HTTP通信のヘッダの区切りは\r\nです。 RFC 1945 : Hypertext Transfer Protocol -- HTTP/1.0 の5.1に, Req...
by YuO
9年前
フォーラム: C言語何でも質問掲示板
トピック: オリジナルのまとめて管理できるメモ帳を作りたい
返信数: 10
閲覧数: 972

Re: オリジナルのまとめて管理できるメモ帳を作りたい

但し、コンパイルは通るようになったのですが if( str->IndexOf("//") >= 0 ) stringData[index]->title = Item->Replace("//",""); else stringData[index]->body = Item + "\n"; の部分で強制的に落ちてしまいます。 indexの値が常に0しか入らないような形にしても落ちたので入れ方?が悪いのでしょうか。 デバッグしましょう,というのがとりあえずの答えになりそうですが……。 VC++であれば,例外が発生した時点でブレイクするはずです。 ウォッチ等を使えば,その時点での変数等の値を見...
by YuO
9年前
フォーラム: C言語何でも質問掲示板
トピック: オリジナルのまとめて管理できるメモ帳を作りたい
返信数: 10
閲覧数: 972

Re: オリジナルのまとめて管理できるメモ帳を作りたい

\multieditor\Form1.h(41) : error C2143: 構文エラー : ')' が ';' の前にありません。 というわけなので,41行目を抜粋。 stringData = gcnew array<OBJECT_DATA^>(MAX); 何もおかしくなさそうですが,MAXの定義を引っ張ってくると…… #define MAX 256; MAXの定義に;が付いています。つまり,先の41行目は stringData = gcnew array<OBJECT_DATA^>(256;); と展開されるため,エラーになります。 C++にしろC++/CLIにしろ,#defineはプ...
by YuO
9年前
フォーラム: C言語何でも質問掲示板
トピック: 修正パッチ
返信数: 12
閲覧数: 869

Re: 修正パッチ

修正パッチってダウンロードしたあとにインストールすると思うのですが 修正パッチへのイメージで異なるのでしょうが,私は「その通り」だと思います。 旧バージョンのComponentのアンインストールおよび新バージョンのComponentのインストールに相当するので。 インストールするとコンパイルしたのと同じになるのですか? インストールとコンパイルは全く異なります。 インストールは,「プログラムをそのマシンで利用可能にすること」で, コンパイルは,「ソースコードを(特定の)マシンで解釈可能にすること」です。 コンパイルした結果を,インストールする事になります。 インストールでは, プログラム本体...
by YuO
9年前
フォーラム: C言語何でも質問掲示板
トピック: memsetで警告がでる。
返信数: 5
閲覧数: 2103

Re: memsetで警告がでる。

boxさんの書かれている事はもっともなので,これから守っていただくとして……。

とりあえず,エラーメッセージ読むかぎり,
#include <string.h>
が抜けているのではないかと。
by YuO
9年前
フォーラム: C言語何でも質問掲示板
トピック: ファイルの読み込みについて
返信数: 6
閲覧数: 726

Re: ファイルの読み込みについて

opeartor>> (basic_istream<charT, traits>&, charT *)やoperator<< (basic_ostream<charT, traits>&, const charT *)は,「文字列」の入出力を行う関数です。 つまりは,charT() (iostreamでは'\0') で終端します。 バイナリデータを取り扱いたいのであれば,readsomeで読み取る必要がありますし,writeで書き込む必要があります。 ただし,std::coutには,「何を出力したいのか」をハッキリさせた方が良いです。バイナリデータなんて出力させてもしょうがないので。 同様の理...
by YuO
9年前
フォーラム: C言語何でも質問掲示板
トピック: 予約語でない定義
返信数: 6
閲覧数: 435

Re: 予約語でない定義

どこか (インクルードされているファイルを含む) で型が定義されているのでしょう。
その実体がclassなのかstructなのかunionなのかenumなのか,はたまたtypedefされた別名なのかはわかりませんが。
by YuO
9年前
フォーラム: C言語何でも質問掲示板
トピック: 【Perl】データベースでファイルロックは必要?
返信数: 2
閲覧数: 399

Re: 【Perl】データベースでファイルロックは必要?

DB EngineとしてMyISAMのようなトランザクション制御ができない物を使う場合を除いて,
わざわざトランザクション制御機構を別途作る必要はないと思います。

もちろん,MySQL以外の外部リソースとの排他制御にロックが必要な場合は別ですが。
by YuO
9年前
フォーラム: C言語何でも質問掲示板
トピック: 修正パッチ
返信数: 12
閲覧数: 869

Re: 修正パッチ

なんとなくデジャブ…… http://dixq.net/forum/viewtopic.php?f=3&t=4075 通常のアップデートやパッチというのは,ファイル単位で(正確にはComponent単位だけれども)行われています。 というか,MS推奨のWindows Installerの仕組みはそうなっています。 # なので,Windows Updateですらファイルを上書きします。 セーブデータは%AppData%なり%LocalAppData%に最初に実行したタイミングで作れば問題は無いですよね。 インストール先は通常%ProgramFiles%以下なので,そもそもインストール先にセーブデ...

詳細検索ページへ移動する