検索結果 137 件

by Bull
1年前
フォーラム: C言語何でも質問掲示板
トピック: ファイル分割した際,構造体が未定義になる.
返信数: 3
閲覧数: 968

Re: ファイル分割した際,構造体が未定義になる.

Sado さんが書きました:変数や関数の定義・宣言はともかく、構造体の定義に関してのみextern指定子は無効だという考えで間違いないでしょうか?
そうですね、C/C++言語では型の外部参照はありません。
コンパイラーは別のファイルにある構造体定義を(#include 以外で)読込むようなことはしません。
オブジェクトと関数の外部参照はリンク時に解決されますが、コンパイルはソースファイル単位(正確には翻訳単位)に行われます。ポインターなら不完全型でもいい場合がありますが、構造体のオブジェクトにアクセスするには不完全型ではダメですね。
by Bull
1年前
フォーラム: C言語何でも質問掲示板
トピック: ファイル分割した際,構造体が未定義になる.
返信数: 3
閲覧数: 968

Re: ファイル分割した際,構造体が未定義になる.

exList は include.h で

コード:

extern struct strtype_example exList[EX_NUM];
と宣言していますが、このままでは struct strtype_example は不完全型(中身がない)です。
struct strtype_example は init.c で 定義されていますが、funcion.c からは見えません。

コード:

struct strtype_example {
    char *dataA;
    char *dataB;
};
は include.h に記述すると良いでしょう
by Bull
1年前
フォーラム: C言語何でも質問掲示板
トピック: quick sort とselection sortの実行時間の計測
返信数: 2
閲覧数: 357

Re: quick sort とselection sortの実行時間の計測

時間の計算がおかしいようですね。

コード:

     msec=timebf.time-msec;

コード:

     msec=timebf.millitm-msec;
でしょうか?
by Bull
1年前
フォーラム: C言語何でも質問掲示板
トピック: 計算式
返信数: 7
閲覧数: 818

Re: 計算式

コード:

int loaded[] = { 1.0 / 10, 1.0 / 10, 1.0 / 10, 1.0 / 10, 1.0 / 10, 1.0 / 2 };
この配列の定義は必須ですか?
この配列が無意味のは理解できますか?

もし必須でなければ、みけCATさんの配列を使った方が簡単そうです。
もし必須ならば、0以上1未満の乱数を生成して、どの範囲に収まるかを求めればいいと思います。
by Bull
1年前
フォーラム: C言語何でも質問掲示板
トピック: MIDI情報のTIMEの取得について
返信数: 1
閲覧数: 378

Re: MIDI情報のTIMEの取得について

MIDIデータ の TIME とはなんでしょうか?
デルタタイムでしょうか? それとも絶対時刻でしょうか? それとも演奏時間ですか?

MIDIdataLib を使用して MIDIファイルを読込めば、MIDIEvent 構造体の m_lTime に絶対時刻が入っているようです。

サンプルプログラムは実行してみましたか?
by Bull
1年前
フォーラム: C言語何でも質問掲示板
トピック: C++を複数ファイルに分けた先でのインクルードについて
返信数: 2
閲覧数: 412

Re: C++を複数ファイルに分けた先でのインクルードについて

あくまで私個人の考え方ですが、func.h で iostream をインクルードすることは、無いです。
ヘッダーファイルは、その関数(ここではfunc.cpp)を使う側のためのものと考えるからです。
使う側にとって、iostream を使っているかどうかはあまり関係ないことなので、
必要の無いものはインクルードしないのが、私の方針です。
もちろん、インライン関数などで必要ならインクルードします。
by Bull
1年前
フォーラム: C言語何でも質問掲示板
トピック: C言語でリソースの練習をしています
返信数: 4
閲覧数: 723

Re: C言語でリソースの練習をしています

LoadIcon と LoadCursor をする時に、EXE のインスタンスハンドルを指定しているからでしょう。
LoadLibrary でDLL のインスタンスハンドルを取得し、それを指定すれば良いと思います。

リソースのみの DLL の作成
を参考にしてみて下さい。
by Bull
1年前
フォーラム: C言語何でも質問掲示板
トピック: ポインタを使った配列を関数に受け渡す方法について
返信数: 7
閲覧数: 3871

Re: ポインタを使った配列を関数に受け渡す方法について

gumi さんが書きました:>申し訳ありません、「main関数の中では*がつかずdataとなり、sort関数で受け取るときint *_dataとなる」の誤りです。
C言語の文法がそうなっていると言うと身も蓋もないですが、関数の仮引数の宣言も普通の変数宣言と同じ書式になります。
引数の引き渡しだけを考えると以下の宣言と本質的には変わりません。

コード:

int *data;
/* ... */
data =(int *)malloc(n * sizeof(int));
/* ... */
int *_data = data
これなら理解できますか?
by Bull
1年前
フォーラム: C言語何でも質問掲示板
トピック: [c++]自作dllの読み込み方
返信数: 7
閲覧数: 3137

Re: [c++]自作dllの読み込み方

いろいろ調べた結果、プロジェクトファイルと同じディレクトリ(今回だとMain)にdllがあるとエラーなく動くようです。 できることならbin/Debugのdllを読み込みたいのですが何か方法はないでしょうか? それともプロジェクトファイルと同じディレクトリにdllを出力するのが正しい方法なのでしょうか? 一応確認ですが、ビルドは正常に終了して、実行時にエラーが出るのですよね? でしたら EXE と DLL の位置が問題なのではないかと思います。 要するに DLL を見つけられない状態ですね。 プロジェクトファイルというのがなんなのかわかりませんが、ソースファイルやライブラリーは実行時には関係...
by Bull
1年前
フォーラム: C言語何でも質問掲示板
トピック: Visual Stadio2017について
返信数: 5
閲覧数: 887

Re: Visual Stadio2017について

色々やり方はありますが、一番手軽な方法は、ダウンロードしたDxLibの "DxLib_VC\プロジェクトに追加すべきファイル_VC用" の中のすべてのファイル(ヘッダーとライブラリー)をVisual Studioのプロジェクトの "project\include" にコピーすることです。そうすればソースもプロジェクトも変更せずにすみます。

もとのincludeのファイルは上書きしていいと思いますが、不安ならフォルダーごとリネームでもしておいてください。
by Bull
1年前
フォーラム: C言語何でも質問掲示板
トピック: Visual Stadio2017について
返信数: 5
閲覧数: 887

Re: Visual Stadio2017について

プロジェクトに含まれるヘッダーとライブラリーは古いようです。
最新のDxLibをダウンロードし、それを使用すればリンクエラーは解消すると思います。
by Bull
1年前
フォーラム: C言語何でも質問掲示板
トピック: cのプログラミング基礎
返信数: 5
閲覧数: 802

Re: cのプログラミング基礎

解決した後見てなかったので、遅くなりました。 gccはあまり詳しくないので、私のわかることだけですが。 まずgccはいろいろなOSで動作し、バージョンによっても事情が変わってくるので、使用している環境を明示していただいた方がいいのです。VC++をお使いのようなので、Windowsと仮定して回答します。もしWindowsでない場合は補足していただければ、他の人からも答えて頂けるかもしれません。 Windowsで動作するgccはCygwinとMinGWが有りますが、私はMinGWしか使ってないので、MinGWについて回答します。MinGWもいろいろな亜流があるようですが、現在使っているのはgcc ...
by Bull
1年前
フォーラム: C言語何でも質問掲示板
トピック: マイクのミュート状態
返信数: 9
閲覧数: 3212

Re: マイクのミュート状態

そのページにあるリンクをたどった先でMMDeviceに少しだけ触れています。
Vista以降はマルチメディア関数に替わりMMDeviceが使われるようです。

英文のサイトですが、Audio Endpoint Devices (Windows)はどうでしょうか。
by Bull
1年前
フォーラム: C言語何でも質問掲示板
トピック: マイクのミュート状態
返信数: 9
閲覧数: 3212

Re: マイクのミュート状態

あまり詳しくないのですが、回答がないようなので。

ちょっと検索してみたら以下のページが見付かりました。
内容は確認していませんが、ご参考までに。

Windowsの音量(ミキサー)を制御したい
by Bull
1年前
フォーラム: C言語何でも質問掲示板
トピック: cのプログラミング基礎
返信数: 5
閲覧数: 802

Re: cのプログラミング基礎

VC++ではデフォルトでは%nサポートが無効の状態です。
有効にするには、_set_printf_count_output()関数を使用します。

コード:

#include <stdio.h>

int main(void)
{
	int i;

	_set_printf_count_output(1);
	printf("%d %f\n%n", 100, 123.23, &i);
	printf("これまでの出力文字数は、%d 個です。\n", i);

	return 0;
}
by Bull
1年前
フォーラム: C言語何でも質問掲示板
トピック: CScrollViewクラスについて詳しく解説してある本を探しています。
返信数: 2
閲覧数: 547

Re: CScrollViewクラスについて詳しく解説してある本を探しています。

CScrollViewクラスと言うことは、MFCでプログラミングしているということですか? CScrollViewに特化した参考書というのはないと思うので、MFCの参考書ということになるのでないかと。 最近はあまりMFC関連の書籍は見かけませんね。古いので良ければ、私の持っている本ですが、 (1) MFCによるWindowsプログラミング 私の持っているのはWindows95時代のものですが、その後Windows2000対応の新版が出ているようです。 とは言っても10年以上前のものですし、新品での入手は困難でしょう。中古なら手に入るみたいですが、 Amazonでは¥20,000以上の値段がつい...
by Bull
1年前
フォーラム: C言語何でも質問掲示板
トピック: 未解決のシンボル
返信数: 2
閲覧数: 497

Re: 未解決のシンボル

あれ、すいません。プログラムをよく見てなかったです。
ライブラリを使用しないで、Windowsのマルチメディア関数を直接呼んでいるんですね。
であれば、winmm.libを一緒にリンクするだけでいいです。
デフォルトではwinmm.libはリンクされないようなので、追加の依存ファイルに書き込めばいいです。
by Bull
1年前
フォーラム: C言語何でも質問掲示板
トピック: 未解決のシンボル
返信数: 2
閲覧数: 497

Re: 未解決のシンボル

MIDIの取得について の続きですか? でしたら新しいトピックを立てないで、返信にしていただけると話がつながりやすいです。 ライブラリ(MIDIIO.lib)を指定すればいいと思います。 プロジェクトのプロパティで[リンカー]->[入力]->[追加の依存ファイル]にMIDIIO.lib(Release)またはMIDIIOd.lib(Debug)を指定すればいいです。必要に応じて[リンカー]->[全般]->[追加のライブラリ ディレクトリ]を指定してください。 実行するときはDLL(MIDIIO.dll)も必要になるので、.exeと同じディレクトリに入れてください。 DLLを使用したくないとき...
by Bull
2年前
フォーラム: C言語何でも質問掲示板
トピック: MIDIの取得について
返信数: 2
閲覧数: 433

Re: MIDIの取得について

ダウンロードしたプロジェクトはDLLを作るものなので、そのままでは実行できません。
そのページにサンプルプログラムがあるので、それで動作確認ができますが、新たにプロジェクトを作成しなければなりません。プロジェクトの作り方はわかりますか?
こちらでは Windows 7 Pro(32bit)/Visual Studio 2015 の環境で正常に音が出ていることが確認できています。
by Bull
2年前
フォーラム: C言語何でも質問掲示板
トピック: vc++2010e でコードファイルのカラー印字は出来無いのでしょうか?
返信数: 2
閲覧数: 607

Re: vc++2010e でコードファイルのカラー印字は出来無いのでしょうか?

ちょっと検索してみたら、こんなページが見付かりました。
https://msdn.microsoft.com/ja-jp/librar ... .100).aspx
ただしExpress Editionでは無理みたいです。

VS2008とかVS2015なら、そのままでもできるみたいですけどね。
by Bull
2年前
フォーラム: C言語何でも質問掲示板
トピック: OLEによる関数呼出し時の引数の調べ方について
返信数: 6
閲覧数: 1686

Re: OLEによる関数呼出し時の引数の調べ方について

最後に記述頂いたソースで少し質問しても宜しいでしょうか。 AutoWrap(DISPATCH_METHOD, NULL, pXlSheet, L"PrintOut", 9, vtMissing, vtMissing, vtMissing, vtMissing, printer, vtMissing, vtMissing, vtMissing, vtMissing); 上記コードですが、 1)pXlSheetは"Worksheets"オブジェクトで宜しいでしょうか?(Worksheets、sheets、sheetとEXCELはやたらにオブジェクトがありますので・・・) 2)vtMissingは...
by Bull
2年前
フォーラム: C言語何でも質問掲示板
トピック: OLEによる関数呼出し時の引数の調べ方について
返信数: 6
閲覧数: 1686

Re: OLEによる関数呼出し時の引数の調べ方について

普段 VC で#importを使用するプログラムしか作ってないので、状況が違うのですが、 メソッドのパラメーターはVBAのヘルプやVCが#importするときに作ったヘッダーを参考にしています。 VBAは微妙に違うものがあるし、ヘッダーは説明がないので、名前から連想して最終的には、 試行錯誤でプログラミングしてます。 もし、VCをお使いならば、一度#importを使用したプログラムをコンパイルして、 ヘッダーファイルだけでも作っておくといいかもしれません。 PrintOutのパラメーターは全部で、9個みたいです。そのうち5番目がプリンター名です。 パラメーターの省略はできないようなので、すべて...
by Bull
2年前
フォーラム: C言語何でも質問掲示板
トピック: エラーを理解できない 
返信数: 1
閲覧数: 767

Re: エラーを理解できない 

s.h さんが書きました:以下のプログラムで「LNK1169」「LNK2005」というエラーが出たのですが意味が理解できません
お使いのコンパイラーはVC++でしょうか?
であるとすると「LNK1169」「LNK2005」というエラーは
識別子を多重定義したときに発生します。
ご提示のソースをコンパイルする限りは、エラーは出ません。

想像ですが、同じプロジェクトに別のソースがあって、
そこに同じ名前の関数が定義してあるのではないでしょうか?
by Bull
3年前
フォーラム: C言語何でも質問掲示板
トピック: Runtime API と driver API
返信数: 12
閲覧数: 1358

Re: Runtime API と driver API

普段 Windows のデスクトップアプリ、それもネイティブアプリしか作らないので、 あまり知識があるとは言えないのですが、一般的にはWindows Runtime API と 言ったらストアアプリ用のAPIのことと思いますが、そのことでしょうか? とするとWindows環境特有の用語で、Linuxには関係ないような気がしますが 全く別の話でしょうか? Driver APIもあまり聞き慣れない用語で、何となくイメージはできますが よく判りません。 どのような文脈で使用されていたのか、説明して頂けませんか? 専門用語は使う人、場所、シチュエーションによって全く違ったりします。 バックグラウンドを...
by Bull
3年前
フォーラム: C言語何でも質問掲示板
トピック: Eclipse windows editionについて
返信数: 1
閲覧数: 545

Re: Eclipse windows editionについて

丹野 さんが書きました: 1) Eclipse windows editionでMSのいろいろAPIを利用できるのでしょうか。
2) Eclipse windows editionがC11, C13 をサポートしますか。
普段 Eclipse を使用していないので、あまり詳しくないのですが、Eclipse は開発環境ですので
これらは、使用しているコンパイラー次第ではないでしょうか。
by Bull
3年前
フォーラム: C言語何でも質問掲示板
トピック: Microsoft Visual Studio コミュニティ2015をインストールをアンインストール
返信数: 1
閲覧数: 525

Re: Microsoft Visual Studio コミュニティ2015をインストールをアンインストール

VC++ を使用するなら、アンインストールしたらダメでしょう。 他のコンパイラを使うなら、どうでもいいでしょうけど。 OSによって違うのですが、基本的にはスタートメニュー(スタート画面)からたどっていけばいいんですけど。 例えば Windows7 ですと、[すべてのプログラム]→[Visual Studio 2015]→[Visual Studio Tool]の中に "開発者コマンド プロンプト for Visual Studio 2015"というのがあるので、それをクリックするとコマンドプロンプトが開きます。そうすると "cl コマンド" が使えるようになります。 スタートメニューは個人的に...
by Bull
3年前
フォーラム: C言語何でも質問掲示板
トピック: >cl コマンドラインエラー D8016 /ZIと/Gyは同時に指定できません。
返信数: 1
閲覧数: 3246

Re: >cl コマンドラインエラー D8016 /ZIと/Gyは同時に指定できません。

"/Gy" オプションはプロパティページの[C/C++]→[コード生成]の関数レベルでリンクするで指定します。
ところで、状況がよく判らないので、幾つか質問に答えていただけますか?

1. DebugモードとReleaseモードのどちらでビルドしているのでしょうか?
2. 新規でプロジェクトを作成しても、同じエラーが出ますか?
3. C/C++のプロパティはどこを変えましたか?
4. どのようにプロジェクトを作成しましたか?
by Bull
3年前
フォーラム: C言語何でも質問掲示板
トピック: コマンドラインオプションD8016 エラー
返信数: 6
閲覧数: 3284

Re: コマンドラインオプションD8016 エラー

constructor2016810 さんが書きました:プロパティに変更を加えたら PCを再起動する必要があるのでしょうか?
その必要はないです。プロパティを変更したら即座に反映されるはずです。

すでに指摘されている事ですが、"/ZI"と"/GL"オプションは同時に指定できません。普通にプロジェクトを作成すると同時に指定される事はないはずですが...
もしどうしても出来ないのであれば、最初からプロジェクトを作り直してみた方がいいかもしれません。
あと、プロパティのコマンドラインで指定してあるオプションを確認できます。現状のプロジェクトがどうなっているか、見てみてください。
by Bull
3年前
フォーラム: C言語何でも質問掲示板
トピック: コマンドラインオプションD8016 エラー
返信数: 6
閲覧数: 3284

Re: コマンドラインオプションD8016 エラー

プロジェクトのpropertyで、/ZI あるいは/GL の選択方法がわかりません。   どのようにすればよろしいでしょうか? /ZIプロジェクトのプロパティの[C/C++]→[全般]のデバッグ情報で「エディット コンティニュのプログラム データベース(/ZI)」で指定します。/GLは同じく[C/C++]→[最適化]のプログラム全体の最適化で「はい(/GL)」で指定します。この二つはデフォルトでプロジェクトを作成すると同時に指定される事はないはずですが、変更しましたか? Debugモードならばプログラム全体の最適化は指定されてないはずです。またReleaseモードでは、デバッグ情報の形式は「...
by Bull
3年前
フォーラム: C言語何でも質問掲示板
トピック: テンプレート
返信数: 3
閲覧数: 691

Re: テンプレート

Visual Studio のプロジェクトテンプレートのことですか?
だとしら、Visual Studio のエディションは何でしょうか?
エディションによってはコンソールアプリケーションを
作成できないものもあるようです。
Express for Desktop ならば可能ですが、for Web
とか for Windows などではできないはずです。
by Bull
3年前
フォーラム: C言語何でも質問掲示板
トピック: 【VC++】特定のエディットコントロールだけD&Dを許可したい。
返信数: 2
閲覧数: 1059

Re: 【VC++】特定のエディットコントロールだけD&Dを許可したい。

まず最初に確認したいのですが、MFC を使用しているのですよね。 質問の内容から何となく MFC を使用している感じがしました。 以前に特定のコントロールのみのドラッグ&ドロップをするプログラムを 作った記憶があったので、古いソースを漁ってみたら、VC6のソースが 見付かりました。バージョンもかなり前ですし、エディットコントロールに ではなく、コンボボックスが対象ですが基本的には変わらないのでは ないかと思います。 大雑把に言いますと、リソースエディタでドラッグドロップを許可する にして、コントロール(コンポボックス)をサブクラス化していました。 MFC でしたらコントロールのサブクラス化はそ...
by Bull
3年前
フォーラム: C言語何でも質問掲示板
トピック: Hell worldプログラムについて
返信数: 2
閲覧数: 632

Re: Hell worldプログラムについて

womb さんが書きました:また、そもそもBlend for Visual Studio 2015を使用している事が間違えではないでしょうか。
その「Hell worldプログラム」でしたら
Blend for Visual Studio 2015 ではなく Visual Studio 2015 でプログラミングして下さい。
by Bull
3年前
フォーラム: C言語何でも質問掲示板
トピック: 不明なスコープ
返信数: 1
閲覧数: 782

Re: 不明なスコープ

ナビゲーションバーのことだと思うのですが、違っていたらご免なさい。 自分の経験では、インテリセンスが効いていないとナビゲーションバー が不明なスコープになりました。インテリセンスは効いていますか? インテリセンスが効いていて不明なスコープになっているとしたら、 ちょっとわかりません。新しく作ったプロジェクトでも同じ現状が 出ているとしたら、かなり厄介かもしれません。 私の場合、フォールバック位置の設定を間違えたため、インテリセンス が無効になり、同時にナビゲーションバーの機能も使えなくなりました。 設定のインポートで他のPCから設定ファイルをそのまま持ってきたので フォルダーの構成が違っていて...
by Bull
3年前
フォーラム: C言語何でも質問掲示板
トピック: Cでのenumの名前衝突
返信数: 4
閲覧数: 2232

Re: Cでのenumの名前衝突

名前空間とスコープ(可視範囲)は別の概念です。 #define は単なる文字列の置き換えですので、スコープの概念はありません。 しかし enum にはスコープがありますので、例えば次のようなプログラムはコンパイルが通ります。 void func1() { typedef enum { NORMAL, RESETTING, }state1_t; state1_t st = NORMAL; } void func2() { typedef enum { NORMAL, ALLOWED, }state2_t; state2_t st = NORMAL; } int main() { func1();...
by Bull
3年前
フォーラム: C言語何でも質問掲示板
トピック: Cでのenumの名前衝突
返信数: 4
閲覧数: 2232

Re: Cでのenumの名前衝突

C言語では列挙子 (enum) 用の名前空間が無いので、たとえ構造体の中に入れても、ダメでしょうね。
マクロを使ってなんとかするという手はあるかもしれませんが、個人的にはやりたくないです。
C++11 以降でしたら、enum struct(class) が使えると思います。

http://qiita.com/ashdik/items/0a11ac75f07c7f80e97a
by Bull
3年前
フォーラム: C言語何でも質問掲示板
トピック: コマンドプロンプトでUTF-8
返信数: 3
閲覧数: 1174

Re: コマンドプロンプトでUTF-8

環境によっても違うかもしれませんが、UTF-8を表示するには、コードページを
65001に変更する必要があり、デフォルトのフォントでは表示できないようです。
MSゴシックに変更すれば表示できますが、先にコードページを65001に設定する
とMSゴシックが選べないようなので、その場合は一旦コードページを932に戻し
てフォントをMSゴシックにして、再度コードページを65001にすればUTF-8の
文字を表示できるようになります。
by Bull
3年前
フォーラム: C言語何でも質問掲示板
トピック: 新しいc++ファイル/ヘッダーファイルが作成できません
返信数: 2
閲覧数: 666

Re: 新しいc++ファイル/ヘッダーファイルが作成できません

私自身は Express 2015 を使用していませんし、そのような状況になった事はないのですが、
デフォルトではC/C++がインストールされないようです。もしかしたら、インストールする
ときにC/C++を選択していなかったのではないのでしょうか? 
もしそうなら、再インストールしてみてはいかがでしょうか。
by Bull
3年前
フォーラム: C言語何でも質問掲示板
トピック: errno_tは方の名前ではありません
返信数: 3
閲覧数: 1421

Re: errno_tは方の名前ではありません

ソースには問題ないようなので、開発環境の問題でしょうか。
エラーメッセージが正しいとすると"C:\Program Files (x86)"の
直下にVCフォルダがあるのも変ですが、そもそも
Visual Studio 2015 では "crtdbg.h" は "VC\iclude" にはありません
し、行数も違うようです。

何度もインストールをしているようですので、場合によっては
Windows の再インストールも検討してみてはいかがでしょうか。

こちらの環境は Windows 8.1 なのでその辺の違いがあるかも
しれませんが...
by Bull
3年前
フォーラム: C言語何でも質問掲示板
トピック: 学校で・・
返信数: 5
閲覧数: 1058

Re: 学校で・・

大文字小文字の間違いは既に指摘がありますが、その他にもエラーがあったのでとりあえずコンパイルできるようにしてみました。 #include<windows.h> LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); ATOM InitApp(HINSTANCE); BOOL InitInstance(HINSTANCE, int); HFONT MyCreateFont(LPCTSTR, int, int); LPCTSTR lpszClassName = TEXT("font01"); int WINAPI WinMain(HINSTANC...
by Bull
3年前
フォーラム: C言語何でも質問掲示板
トピック: VC++2008のライセンス登録ができません
返信数: 3
閲覧数: 994

Re: VC++2008のライセンス登録ができません

PUMP さんが書きました:それとももうライセンス登録はできないのですかね?
もしできないのであれば、おすすめの無料コンパイラとかありますか?
Visual Studio 2008はもうサポートも終了しているようなので、登録はできないようですね。
どうしても、2008でなければならない事情がなければ、最新のVisual Studio 2015などは
いかがでしょうか? Expressエディションもありますし、個人で使用するならProfessionalと
ほぼ同じ機能が使えるCommunutyもあります。
by Bull
3年前
フォーラム: C言語何でも質問掲示板
トピック: " を出力したい。
返信数: 5
閲覧数: 592

Re: " を出力したい。

みけCAT さんが書きました:
オフトピック
いつからC++の質問だと錯覚していた…?
既に解決しているので余計なことですが、質問の内容からC++と判断しました。
まあ、質問者様が言語を明記してないので間違っている可能性もありますが。
解決したので、それでよかったのかな?
by Bull
3年前
フォーラム: C言語何でも質問掲示板
トピック: " を出力したい。
返信数: 5
閲覧数: 592

Re: " を出力したい。

amehirune さんが書きました:先生ではありませんし
同じく先生ではありませんが。
amehirune さんが書きました:C++だとどうなんだろう?
C++でも同じで、\でエスケープすればいいです。

C++11以降でしたら、raw文字列リテラルを使ってもいいですね。

コード:

#include <iostream>

int main(void)
{
	std::cout << R"(raw文字列リテラルを使えば'"'をエスケープする必要はありません)" << '\n';
}
by Bull
3年前
フォーラム: C言語何でも質問掲示板
トピック: トランプ
返信数: 8
閲覧数: 3535

Re: トランプ

構造体は使っていないので、あまり参考にならないかもしれませんが。 #include <stdio.h> #include <stdlib.h> #include <time.h> #define SUIT(c) ((c) / 13) //絵柄を決定 #define RANK(c) ((c) % 13) //番号を決定 void shuffle (int array[], int n) { while (n > 1) { int temp; int k = rand( ) % n; n--; temp = array[n]; array[n] = array[k]; array[k] = tem...
by Bull
3年前
フォーラム: C言語何でも質問掲示板
トピック: MFC:CDialogExについて
返信数: 4
閲覧数: 1661

Re: MFC:CDialogExについて

コンストラクターの初期化リストで、配列の初期化はできるはずです。 クラスの初期化に関しましては、以前の規格(C++98, C++03)と最近の規格(C++11, C++14) とはだいぶ違っています。以前は初期化リストで配列の初期化はできなかったです。これに 対応したのは VC++14.0(Visual Studio 2015) からのようです。同様にクラスを定義する時 にメンバー変数を初期化できるようになったのもC++11からです。 コンストラクターでメンバを初期化するのは必要なことだと思っています。クラスの定義時 にもある程度初期化ができるのですが、クラスオブジェクト(インスタンス)の定義...
by Bull
3年前
フォーラム: C言語何でも質問掲示板
トピック: MFC:CDialogExについて
返信数: 4
閲覧数: 1661

Re: MFC:CDialogExについて

C++言語の文法とMFCの流儀とは区別して考えた方いいと思います。 MFCもC++のクラスライブラリですので、その範疇で作られてる はずですが。 まず、普通 MFC でダイアログを作る時は、CDialog(Ex)から派生させた クラスでダイアログを作ります。CMultiClipDlgは CDialogEx の派生 クラスでよね。CMultiClipDlgのコンストラクターで基底クラスである CDialogEx を初期化しています。 ウィザードで変数を追加した時に、初期化リストに追加されるのは、 コンストラクターでメンバー変数を初期化するのは、それが自然な事 と(Visual Studioが)...
by Bull
3年前
フォーラム: C言語何でも質問掲示板
トピック: メルセンヌ・ツイスタを使用した乱数をファイルに出力
返信数: 34
閲覧数: 3223

Re: メルセンヌ・ツイスタを使用した乱数をファイルに出力

誰も指摘してないようなので。
ベルジオン さんが書きました:乱数の要素数は5億個ほど出力したいです。

コード:

	/* ファイルのオープン */
	if ((fp = fopen(filename, "r")) == NULL) {
		fprintf(stderr, "%sのオープンに失敗しました.\n", filename);
		return(0);
	}
どうすれば良いのか何もわからないで恐縮ですが、教えていただけると幸いです
これでは出力はできないですね。
"w"を指定して、書込みモードにしないとダメですね。
by Bull
3年前
フォーラム: C言語何でも質問掲示板
トピック: プロセスのメモリセグメント一覧取得
返信数: 2
閲覧数: 499

Re: プロセスのメモリセグメント一覧取得

セグメントと言うのがちょっとよくわからないのですが、プロセス内のメモリーの情報は VirtualQuery(Ex) というAPI で調査する事が出来ます。サンプルプログラムは
http://itpro.nikkeibp.co.jp/article/COL ... /?rt=nocnt
あたりを参考にしてください。
by Bull
4年前
フォーラム: C言語何でも質問掲示板
トピック: テキストを表示させるプログラムでのアクセス違反
返信数: 18
閲覧数: 1295

Re: テキストを表示させるプログラムでのアクセス違反

最初のload関数が間違っているような気がします。 ちょっと書き直してみました。 #include <stdio.h> #include <stdlib.h> #include <string.h> int load(char ***a); int main(void) { int m, k; char **a; m = load(&a); for (k = 0; k < m; k++) { printf("%s\n", a[k]); } for (k = 0; k < m; ++k) free(a[k]); free(a); return 0; } int load(char ***a){ ...
by Bull
4年前
フォーラム: C言語何でも質問掲示板
トピック: GeyKeyboardState関数について
返信数: 4
閲覧数: 832

Re: GeyKeyboardState関数について

びせいぶつ さんが書きました:ということは、見るべきは最上位と最下位のbitのみで、それ以外のbitは何が入っているか保証されていない。
という判断でよろしいのでしょうか?
保証されていないと言うか、意味がないと言うことでしょうね。
オフトピック
普通は0になっていと思いますが、まあどっちでもいいんです
by Bull
4年前
フォーラム: C言語何でも質問掲示板
トピック: GeyKeyboardState関数について
返信数: 4
閲覧数: 832

Re: GeyKeyboardState関数について

これは何が原因なのでしょうか?自分の関数の使い方が間違っているのでしょうか? GetKeyboardState()の返却値の意味を取り違えてい いるようです。GetKeyboardState()は'TRUE'または 'FALSE'を返しますが、関数が正常終了したかどうか を意味します。キー入力が有ろうと無かろうと、普 通はTRUEを返します。keyBufには仮想キーの状態が 格納されますが、キーが押されている場合は最上位 ビットが1になります。 詳細はMSDNで確認してください。 ちょっとしたサンプルです。 #define WIN32_LEAN_AND_MEAN #include <wind...
by Bull
4年前
フォーラム: C言語何でも質問掲示板
トピック: メモリ領域の確保について
返信数: 7
閲覧数: 1293

Re: メモリ領域の確保について

/GSオプションですがVC2008にもあるようで、バッファセキュリティチェックはTrueになっていることを確認しました。 ただそれでもVC2008では実行出来てしまい、VC2012では実行エラーになるのは何故なのでしょうか? なにか/GSの機能がVC2012により厳しくなるようなことがあったのでしょうか? VC++ 2008でエラーにならない理由ですが、前にも書きましたが、最適化すると不正アクセスするコードは実際には生成されません。ですので、main()の最後のセキュリティのチェックに引っかからないという事ですね。最適化をやめるとエラーになります。 では、なぜVC++ 2012でエラーが出る...
by Bull
4年前
フォーラム: C言語何でも質問掲示板
トピック: メモリ領域の確保について
返信数: 7
閲覧数: 1293

Re: メモリ領域の確保について

規格ではオブジェクト(変数・配列)をどのように確保 するかは規定されていませんので、あまり気にする必要 は無いと思います。コンパイラーによって違いが出てく ると思われますが、このような不正アクセスのケースで は、コンパイラーがどのようにオブジェクトを配置する かを把握しているとデバッグがしやすいかも知れません。 VCで例外が発生するのは/GSオプションでセキュリティの チェックが組み込まれているためのようです。コンパイル 結果を見てみると、 str_A[40] = '\0'; /* アクセス違反 */ memcpy(str_A,"01234567890123456789012345678901...
by Bull
4年前
フォーラム: C言語何でも質問掲示板
トピック: Visual C++のバックアップを使うには
返信数: 2
閲覧数: 870

Re: Visual C++のバックアップを使うには

やはり普段お世話になっていないことは情報が不十分ですね。
Visual Studio 2013の場合ですが、異常終了したあと、再度
起動すると自動的にリカバリーしてくれるようです。
これは今確かめたので、間違いないです。
by Bull
4年前
フォーラム: C言語何でも質問掲示板
トピック: Visual C++のバックアップを使うには
返信数: 2
閲覧数: 870

Re: Visual C++のバックアップを使うには

私の知る限り、Visual Studioのバックアップは修正を加えたソースを既定のフォルダーに定期的に
保存するだけの機能のようです。また、Visual Studioで保存した時点で、バックアップしたソース
は削除されます。保存しないでVisual Studioが異常終了した時のみ、バックアップしたファイルが
残っています。幸か不幸かまだバックアップの機能に助けられたことがないので、この認識は間違っ
ているかもしれませんが...。
ちなみに、バッグアップされるフォルダーは"Projects"と同じ階層の"Backup Files"です。
by Bull
4年前
フォーラム: C言語何でも質問掲示板
トピック: 同じシグネチャの関数ポインタを返す関数のシグネチャをtypedefしたい
返信数: 4
閲覧数: 926

Re: 同じシグネチャの関数ポインタを返す関数のシグネチャをtypedefしたい

既に回答がありますが、C/C++ではおそらく出来ないと思われます。 代案として、関数の返却値を適当に定義しておいてキャストしてしまう方法が考えられます。 例えばあまりきれいではありませんが #include <stdio.h> #include <stdlib.h> typedef void (*Handler(int))(int); Handler* func0(int); Handler* func2(int n) { printf("IN func2\n"); if (n <= 0) { return NULL; } else { return (Handler *)func0; } }...
by Bull
4年前
フォーラム: C言語何でも質問掲示板
トピック: ファイル名を変更するシステム
返信数: 29
閲覧数: 3947

Re: ファイル名を変更するシステム

Windows の API には LCMapString() というのがありまして、全角⇔半角の変換 なんかをやってくれるんですが、この場合は使えないようですね(なんかいい 方法があるかもしれませんが)。昔作って某所へ投稿したプログラムを少し、 かえてみました。 //全角カタカナを半角に変換する #define WIN32_LEAN_AND_MEAN #include <windows.h> #include <stdio.h> #include <mbctype.h> #include <mbstring.h> int katakana_han(unsigned char *src, uns...
by Bull
4年前
フォーラム: C言語何でも質問掲示板
トピック: LoadLibraryについて
返信数: 6
閲覧数: 1421

Re: LoadLibraryについて

コンパイラの違いでしょうか? 理由も知りたいので、応えてくださったらうれしいです。 DLLでの関数名はコンパイラーによって違うようです。 VCならご提示のプログラムでうまく行くようです。 @以降は __stdcall 特有でスタックに積むバイト 数をあらわしています。"@0"は引数が無い、"@4" なら4バイトの引数が一つ、"@8"なら4バイトの引 数が二つないしは8バイトの引数が一つであると言 うことです。はっきりとした、理由は分りませんが、 __stdcall にすると、呼び出された関数でスタック ポインタを調整するので間違わないようにするため と、聞いたことがあります。__cdecl(...
by Bull
4年前
フォーラム: C言語何でも質問掲示板
トピック: Windows8.1 での winhlp32.exe について
返信数: 2
閲覧数: 882

Re: Windows8.1 での winhlp32.exe について

ありがとうございます。
やはり Windows Update の影響でしたか。

いろいろ検索したのですが、Google では引っかかりませんでした。
Microsoft コミュニティはほとんどノーチェックだったので、今後は
たまには、参照しようかと思います。
いいところを紹介していただきました。

ともあれ、原因がわかって良かったです。
by Bull
4年前
フォーラム: C言語何でも質問掲示板
トピック: Windows8.1 での winhlp32.exe について
返信数: 2
閲覧数: 882

Windows8.1 での winhlp32.exe について

環境は Windows 8.1 64Bit です かつて使われていたヘルプファイル(拡張子が.hlp)は Windows Vista 以降は 標準では表示できません。表示しようとすると、現在サポートされていない旨の メッセージがでて、Microsoft のサイトに誘導されます。そこでダウンロードし てインストールすれば、めでたく古いヘルプファイルも表示できるようになります。 しかし、私のところではうまく表示してくれません。以前は表示できていたよう な記憶があるので(Windows 8.1も公式にファイルが用意されています)、ネット で検索してみても、それらしい情報はありません。唯一海外のブログ...
by Bull
4年前
フォーラム: C言語何でも質問掲示板
トピック: ペイントというアプリケーションへの画像貼り付け
返信数: 1
閲覧数: 520

Re: ペイントというアプリケーションへの画像貼り付け

ペイントのウィンドウを探して、SendInput()を使用して Ctrl+V を送る、というのはどうでしょうか?
あるいは、WM_PASTE をポストする、という方法もあります。
by Bull
4年前
フォーラム: C言語何でも質問掲示板
トピック: ダイアログウィンドウにメニューバーを作るには?
返信数: 8
閲覧数: 1845

Re: ダイアログウィンドウにメニューバーを作るには?

Visual Studio でビルドする場合は、"{" を "BEGIN" に "}" を "END" に変更してみてください。
基本的には、"{ }" でもコンパイルできるはずなんですが、"BEGIN" と "END" を使う方が
無難ですね。

CreateWindow() あたりのバグは既に指摘されているとおりですね。
by Bull
4年前
フォーラム: C言語何でも質問掲示板
トピック: ダイアログウィンドウにメニューバーを作るには?
返信数: 8
閲覧数: 1845

Re: ダイアログウィンドウにメニューバーを作るには?

akindo さんが書きました:下記のサイトの方法を試してみたのですが、どうやらリソースの書き方が
現在の方式とあっていないようでそのままやるとエラーが出ます。
http://wisdom.sakura.ne.jp/system/winap ... win84.html
リソーススクリプトに

コード:

#include <windows.h>
を加えてみてください。
それで、コンパイルができるようになるはずです。
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: Debugビルド時、GetCurrentDirectory()の返り値がおかしい
返信数: 5
閲覧数: 1114

Re: Debugビルド時、GetCurrentDirectory()の返り値がおかしい

プロジェクトのプロパティでデバッグ/作業ディレクトリはどうなっていますか?
当方ではGetCurrentDirectory()で取得するディレクトリはそこで指定したものと
同じになるようです。デフォルトでは "$(ProjectDir)" ですが、直接指定することも
可能で、へにっくす さんがおっしゃるように Windows は大文字小文字を区別しま
せんので、存在するディレクトリならば、そのまま実行できます。
または、 "$(ProjectDir)" がどうなっているかですね。
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: Debugビルド時、GetCurrentDirectory()の返り値がおかしい
返信数: 5
閲覧数: 1114

Re: Debugビルド時、GetCurrentDirectory()の返り値がおかしい

こちらも質問者さんと同じような環境ですが、現象は再現しません。 現象を再現できる最小限のプログラムを提示することは可能ですか。 こちらで使用したプログラムは以下のようなものです。 #include <windows.h> #include <stdio.h> #include <string.h> int main(void) { const int MAX_LENGTH_PATH = 256; char dir[MAX_LENGTH_PATH]; memset(dir, '\0', sizeof(dir)); GetCurrentDirectory(sizeof(dir), dir); pr...
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: qsortの利用
返信数: 10
閲覧数: 1672

Re: qsortの利用

4 45 55 45 95 1 65 95 90 60 2 65 60 70 70 3 90 80 65 65 としたいです。 こうゆうことでしょうか #include <stdio.h> #include <stdlib.h> int cmp(const void *p, const void *q) { return ((int *)p)[1] - ((int *)q)[1]; } int main(void) { int i; int data[][5] = { { 1, 65, 95, 90, 60, }, { 2, 65, 60, 70, 70, }, { 3, 90, 80, 6...
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: 32bitのwindows 7 のプログラムに64bitのdll
返信数: 8
閲覧数: 4629

Re: 32bitのwindows 7 のプログラムに64bitのdll

ちょっと書き漏らしました。

暗黙的リンクならば Dependency Walker を使用してリンクしている DLL は特定できます。
明示的リンクでも、ある程度は調査できます。
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: 32bitのwindows 7 のプログラムに64bitのdll
返信数: 8
閲覧数: 4629

Re: 32bitのwindows 7 のプログラムに64bitのdll

実行環境が良くわからないのですが、64bit Windows で 32bit Exe を実行する場合と考えてよろしいですか?

まず、DLL のリンクには明示的リンクと暗黙的リンクがあるのはご存じだと思いますが、32bitのEXEから64bit
のDLLをコールしようとした場合、明示的リンクでは、LoadLibrary() でエラーになりますし、暗黙的リンクでは
プログラムの開始時にエラーになると思います。どちらもハングアップすることはないはずです。

プログラムがハングアップするのは別の原因ではないのですか?
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: ファイルの入出力に関して(テキスト)
返信数: 11
閲覧数: 1638

Re: ファイルの入出力に関して(テキスト)

そうですね。そういう理解でいいと思います。
ただファイルの終わりではなく、何らかのエラーを検出した場合も
fgetc()関数は EOF を返します。このときは、feof()関数は0 を返
し、ferror()関数が非0 を返します。
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: ファイルの入出力に関して(テキスト)
返信数: 11
閲覧数: 1638

Re: ファイルの入出力に関して(テキスト)

ちょっと違うかな まず fopen() 関数が返すのは FILE * です。どこかに FILE型の オブジェクト(一般的には構造体)があるわけですが、FILE型には "ファイル位置表示子"と"ファイル終了表示子"が含まれます。 feof() 関数はこのファイル終了表示子を調べているだけです。 ファイルを読み込んで初めてファイルが終了したかどうかわかるの で、ファルを読まないうちにファイル終了表示子がセットされるこ とはありません。 つまり、fgetc()関数が正常終了した場合はファイル終了表示子が セットされることはないです。 ファイル位置表示子はこれから読もうとしている文字の位置が格納 され...
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: C#のコンソールアプリケーションとDXLibでノベルゲームを作ってますが
返信数: 3
閲覧数: 1271

Re: C#のコンソールアプリケーションとDXLibでノベルゲームを作ってますが

ノベルゲームなら、Console.KeyAvailable と Console.ReadKey() で間にあうような気もしますが、 DxLib 風のキー入力関数って、こういうことでしょうか? using System; using System.Threading; using System.Runtime.InteropServices; class prog { [DllImport("user32.dll")] public static extern short GetAsyncKeyState(int key); static void GetHitKeyStateAll(int[]...
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: getchとgetcharにおける改行
返信数: 4
閲覧数: 3721

Re: getchとgetcharにおける改行

サモサ さんが書きました:この他にメリットはあるでしょうか?
メリットと言えるかどうかわかりませんが、getch() は入力をエコーバックしません。
例えば、パスワード入力などの場合 getchar() ではエコーバックしてしまうので、
何らかの処置が必要になります。

コンソール入出力関数のメリットは特別には考えとことがなかったです。
前にも書きましたが、目的が違うので使い分けが肝要ではないでしょうか。
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: getchとgetcharにおける改行
返信数: 4
閲覧数: 3721

Re: getchとgetcharにおける改行

getch() と getchar() では目的が違います。 getch() がコンソール入出力関数であるのに対し getchar() は標準入出力関数です。 getch() がリダイレクトすることは出来ないのに 対し、getchar() はリダイレクトされていれば、 ファイルからの入力も出来ます。 getchar() は文字の入力のための関数で、多くの 場合行単位の入力になります。Enterキーを押した と言うことは、行の終わりを意味するので、改行 (\n) に変換されます。 一方 getch() はそういった変換は一切行われません。 文字の入力と言うよりも、キーの入力といった方が いいかも...
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: たろうXX
返信数: 3
閲覧数: 705

Re: たろうXX

mecabは使ったことがなかったのですが、興味があったのでダウンロードしてみました。
installすると、sdkというフォルダーができて、その中のヘッダーとライブラリをVisual Studioで
プロジェクトのVC++ディレクトリまたは、C/C++の追加のインクルードディレクトリとリンカーの
追加の依存ファイルに設定すればビルドはできると思います。

実行時にはDLLが必要になるようですので、同じくbinというフォルダーのDLLを実行ファイルと
おなじフォルダーにコピーすればいいと思います。
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: C++builderのファイル入力について
返信数: 8
閲覧数: 2011

Re: C++builderのファイル入力について

MoonGate さんが書きました:using namespace std;

が抜けてるせいだと思うんですがね。
そうすると、"string" ゃ "ifstream" でもエラーになりそうな気がします。
また、"ifstream" を使うときは <fstream> が必要な気がしますが、
その部分はエラーではないんですよね、不思議ですね。
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: SendInputについて
返信数: 4
閲覧数: 1358

Re: SendInputについて

ええ、そうなんですよね。ソースを提示できればいいのですが、ご免なさい今手元のありません。 これだけじゃなんなんで、概要だけでも... INPUT input[] = { { INPUT_MOUSE, 0, 0, 0, MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, 0, 0 }, { INPUT_MOUSE, 0, 0, 0, MOUSEEVENTF_RIGHTDOWN, 0, 0 }, { INPUT_MOUSE, 0, 0, 0, MOUSEEVENTF_RIGHTUP, 0, 0 }, }; こんな構造体を用意して、マウスを移動する位置を決めます。 そし...
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: SendInputについて
返信数: 4
閲覧数: 1358

Re: SendInputについて

どのような環境で、どのようなプログラムを実行していますか。
また、キー入力を受け取るアプリケーションは何ですか?

簡単なプログラムを書いて実行したところ、うまくキーを拾えているようです。

当方の環境は
Windows7 Pro 32bit
Visual Studio 2010でコンソールアプリケーションを作成
OS標準のスクリーンキーボードからメモ帳に文字を入力

以上です
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: テキストファイルをリソースとして読み出せない
返信数: 6
閲覧数: 2054

Re: テキストファイルをリソースとして読み出せない

Resource.rc で Resource.h をインクルードしていますか?
リソースコンパイラのメッセージを見ると"TEXT_DATA"が文字列のまま使われているようです。
Core.cppでは"MAKEINTRESOURCE"が使われているので、Resource.h をインクルードしていると思います。
そうするとプログラム(数値)とリソース(文字列)で不整合が起こって読み込めないのでしょう

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