検索結果 149 件

by Bull
1年前
フォーラム: C言語何でも質問掲示板
トピック: キーボードの物理状態の判定
返信数: 1
閲覧数: 1862

Re: キーボードの物理状態の判定

質問の内容を理解できていないのですが、いずれにしても物理キーの状態を取得するには実行環境に依存するのではないかと。
プログラミング言語によっては、汎用的に物理キーを取得する方法があるのかもしれませんが。

どのような環境で実行するかを明示していただいたほうが、適切な回答が付きやすいかと思われます。
例えば Windows では、アプリケーションでは普通は仮想キーの入力状態しか取得できないです。
Raw Input API を使用すると、物理キーも取得できるようですが、あいにく経験が無いので詳細はわからないです。
by Bull
2年前
フォーラム: C言語何でも質問掲示板
トピック: C言語 BMP画像反転、色反転
返信数: 2
閲覧数: 3855

Re: C言語 BMP画像反転、色反転

すいません。パディングを考慮してなかったので、横の画素数が 4の倍数以外の画像ファイルは正常に処理できなかったです。 こうしないとダメですね。 #include <stdio.h> #define MAX_SIZE 2560 //画素データの最大サイズ ////////////////////////////データ//////////////////////////////// unsigned char r[MAX_SIZE][MAX_SIZE]; unsigned char g[MAX_SIZE][MAX_SIZE]; unsigned char b[MAX_SIZE][MAX_SIZE]...
by Bull
2年前
フォーラム: C言語何でも質問掲示板
トピック: C言語 BMP画像反転、色反転
返信数: 2
閲覧数: 3855

Re: C言語 BMP画像反転、色反転

とりあえず動くようにしてみました。 左右反転だけです。上下反転も同じようにできるはずです。 #include <stdio.h> #define MAX_SIZE 2560 //画素データの最大サイズ ////////////////////////////データ//////////////////////////////// char r[MAX_SIZE][MAX_SIZE]; char g[MAX_SIZE][MAX_SIZE]; char b[MAX_SIZE][MAX_SIZE]; int main(void) { unsigned char hdr[54]; // ヘッダ格納用の配...
by Bull
2年前
フォーラム: C言語何でも質問掲示板
トピック: インラインアセンブラ - 引数合っているはず
返信数: 7
閲覧数: 5714

Re: インラインアセンブラ - 引数合っているはず

int 21h は MS-DOS のシステムコールなので、昨今の 64bit Windows では動かないですね。
たとえ 32bit Windows でも、gcc のインラインアセンブラで動かすのは無理があります。

64bit Windows で MS-DOS のプログラムを動かすのであれば、仮想環境を用意するのがいいのではないかと思います。MS-DOS そのものを入手するのは容易ではないですが、MS-DOS の互換のものがあるようです。
それで、MS-DOS 用のコンパイラなり、アセンブラを用意して、プログラミングする必要があります。
by Bull
3年前
フォーラム: C言語何でも質問掲示板
トピック: マルチバイトの変換後出力がNULL
返信数: 16
閲覧数: 10409

Re: マルチバイトの変換後出力がNULL

初めてしったけどsprintfは継続して扱うのでははく一回、一回値を扱う関数なのかな? 継続して扱うと言えるのかどうか分かりませんが、続けて使うことはできます。 #include <stdio.h> void sum(int n, char *buf) { int s = 0; int t = 0; int i; for (i = 1; i < n; ++i) { t += i; s = sprintf(buf += s, "%d+", i); } t += i; sprintf(buf + s, "%d=%d", i, t); } int main(void) { char buff[10...
by Bull
3年前
フォーラム: C言語何でも質問掲示板
トピック: c++ でコンパイルエラーを修正したい。
返信数: 4
閲覧数: 5608

Re: c++ でコンパイルエラーを修正したい。

一通り C++ を学習されたのでしたら、何故エラーになっているのは分かっているものと思います。 とりあえずエラーをなくすのであれば、次のようにすればいいかと思います。 //@@@ とコメントを付けているところが変更している箇所です。 #include <iostream> #include <map> #include <string> using namespace std; class FileObject; // この一行(前方参照)だけは、多数のコンパイルエラーを取る為に、私が追記した。 class DataObject { public: static DataObject *cre...
by Bull
3年前
フォーラム: C言語何でも質問掲示板
トピック: Segmentation fault: 11の原因
返信数: 5
閲覧数: 4939

Re: Segmentation fault: 11の原因

全体をよく見てはいないのですが、おそらく // insert forground image into background. void chroma_key(ColorImage *fg, ColorImage *bg) { int i,j; int α=12, β=80, γ=50; //for(i=0;i<fg->width;i++){ for(i=0;i<fg->height;i++){ // for(j=0;j<fg->height;j++){ for(j=0;j<fg->width;j++){ if(fg->r[i][j]<=α && fg->g[i][j]>=β && fg->g...
by Bull
3年前
フォーラム: C言語何でも質問掲示板
トピック: CreateFontToHandleのハンドルはグローバル関数で出来ない?
返信数: 2
閲覧数: 3639

Re: CreateFontToHandleのハンドルはグローバル関数で出来ない?

レッド さんが書きました:
3年前
CreateFontToHandleはグローバル変数では使えないということでしょうか?
確認してないのですが、そんなことないとおもいます。
外部変数(グローバル変数)は main() 関数が呼ばれる前に初期化されます。
DxLib_Init() 関数を呼ぶ前に、CreateFontToHandle() 関数でフォントを作成しているので、単に失敗しているだけかと。

Font00 と Font01 はそのまま外部で定義しておき、DxLib_Init() の後に CreateFontToHandle() すればいいのではないでしょうか。
by Bull
3年前
フォーラム: C言語何でも質問掲示板
トピック: [Win32API] OpenClipboard 関数を複数回呼ぶと落ちてしまう
返信数: 2
閲覧数: 4299

Re: [Win32API] OpenClipboard 関数を複数回呼ぶと落ちてしまう

2カ所ほど修正すれば正常に動作するようです。
wcscpy_s() 関数の第二引数(numberOfElements )は文字数であってバイト数ではないです。
ptr[num_bytes - 1] = L'\0'; は必要ない上に確保したメモリ以外の領域に書込んでいます。

コード:

if (ptr) {
	wcscpy_s(ptr, num_wchars, wtext);
	GlobalUnlock(hMem);
}
とすると、当方の環境ではエラーがなくなりました。
by Bull
3年前
フォーラム: C言語何でも質問掲示板
トピック: 外部プログラムのウィンドウのクライアント領域を移植
返信数: 2
閲覧数: 4384

Re: 外部プログラムのウィンドウのクライアント領域を移植

実装経験があるわけではなく単に思いつきですが、手軽な方法として WM_PRINT というメッセージがあります。
このメッセージを対象のウィンドウに送信すると、指定したデバイスコンテキストに描画してくれます。
リアルタイムに描画できるかどうか分りませんし、要求を満たすものかは分りませんが、対象のデバイスコンテキストを取得してビットマップをコピーするよりはいいかもしれません。
私の不確かな記憶では、他のウィンドウの後ろに隠れていても、描画してくれたと思います。
WM_PRINTメッセージを参考にしてください。
by Bull
4年前
フォーラム: C言語何でも質問掲示板
トピック: 【C言語】文字列リテラルのデータ型について
返信数: 1
閲覧数: 4395

Re: 【C言語】文字列リテラルのデータ型について

まず、これは C言語ではなく C++ ではないですか? C言語でこのエラーはでないはずです。 歴史的経緯もあって以前の規格 (C++98/C++03) では、char * を文字列リテラルで初期化するのは許容されていました。C++11 以降の規格では禁止されました。Visual Studio (VC) でもオプションなしではエラーになりません。 Visual Studio でプロジェクトを作成するとデフォルトで /permissive- オプションが設定され、エラーになります。 /permissive- オプションなしにすると過去のバージョンとの互換性を重視して、規格に厳密に準拠しなくなります...
by Bull
4年前
フォーラム: C言語何でも質問掲示板
トピック: C:動的確保の解放について
返信数: 2
閲覧数: 7569

Re: C:動的確保の解放について

まあ OS によるかもしれませんが、システム全体でのメモリリークはないと思っても良いです。 Windows や Unix系(Linux、Max OS を含む)では、プロセスが終了したらメモリは解放されますので、明示的に解放しないまま終了しても大丈夫です。 細かいこと言い出すと Windows で例えば、クリップボードに大きなデータをコピーしたままプログラムを終了してもそのまま残っているとかはありますが、ローカルヒープ(malloc などで確保したエリア)に関してはプロセスが終了すれば解放されますので、余り気にする必要はないです。 当然なことながらプロセスが終了しない限りはメモリが自動的に解放さ...
by Bull
4年前
フォーラム: C言語何でも質問掲示板
トピック: visualC++のダウンロードについて
返信数: 2
閲覧数: 9044

Re: visualC++のダウンロードについて

Windows SDK は基本的に互換性があるので、最新のものを入れておけば問題ないです。 まれに不具合のあるバージョンもあったりするのですが、現在のものに致命的なバグがあるという話は聞いていません。 Windows 10 SKD (10.0.18362.0) が最新なので、これをダウンロードすればいいです。 ただし、過去に作られたプロジェクトでは古い Windows SDK バージョンを指定しているものもあるので、その点は注意しなければなりません。 DX ライブラリのサンプルプロジェクトで、Windows SDK バージョンが古い場合は、プロジェクトのプロパティで Windows SDK バ...
by Bull
4年前
フォーラム: C言語何でも質問掲示板
トピック: 文字化けについて
返信数: 12
閲覧数: 12916

Re: 文字化けについて

台風の影響もあって、暫くネットにつなぐことができませんでした。 返信が遅くなり申し訳ありません。 以前も書いたと思うのですが、ソースファイル (.c/cpp) の文字コードと実行ファイル (.exe) の文字コード(エンコード)は別です。 ソースコードを UTF-8 で書いて、Shift_JIS の実行ファイルを作成することも、逆に Shift_JIS で ソースコードを書いて UTF-8 の実行ファイルを作ることも可能です。 コンパイラーの内部の構造について詳細に把握しているわけではありませんが、おそらくソースコードを一旦内部コード(おそらく UTF-16)に変換して処理しているものと推測...
by Bull
4年前
フォーラム: C言語何でも質問掲示板
トピック: 文字化けについて
返信数: 12
閲覧数: 12916

Re: 文字化けについて

デバッグコンソールの件は了解しました。Visual Studio のデバッガーから起動したとしてもコンソールには変わりはないので、それによって何かが変わることはないと思います。 コンソールのデフォルトのコードページは cp932 でこれを変更する方法ちょっとわかりません。コマンドラインで実行する場合はコードページを変更してから実行すればいいんですが、Visual Studio から実行したり、エクスプローラーから実行する場合はコードページは cp932 のままであろうと思われます。 UTF-8 の文字列を表示したかったら、ちょっと面倒ですがプログラム内部で表示する前にコードページを cp650...
by Bull
4年前
フォーラム: C言語何でも質問掲示板
トピック: Boostについて教えてください
返信数: 5
閲覧数: 9510

Re: Boostについて教えてください

msvc-14.0用にコンパイルして.exeをビルドするときに10.0用のライブラリを求められて ビルドに失敗した場合にはVisual Studio 2015で作成するプログラムのプロジェクトを作れば 良かったということでしょうか? msvc-140 でライブラリを作成したのなら、Visual Studio 2015 で .exe をビルドすれば、リンクでエラーになることはなかったと思われます。 あと、Boostライブラリで date_time, regex, thread, python, signals, test, filesystem, serialization, program_...
by Bull
4年前
フォーラム: C言語何でも質問掲示板
トピック: 文字化けについて
返信数: 12
閲覧数: 12916

Re: 文字化けについて

① 個人的にですが、Windows プログラムの文字コードは Unicode に統一する (wchar_tを使用する) のがいいじゃないかと思います。 ファイル入出力などで必要があれば、マルチバイト文字に変換する。そうすれば内部の処理がやりやすいのではないかと考えています。 ② デバッグコンソールとは何でしょうか? コマンドプロンプトのことだと思って解答をしてきましたが、もし別のものだとすると私の回答は意味のないものになります。 printf 関数を使っているので、Windows デスクトップのコンソールアプリケーションを想定して回答しています。 まず確認なんですが、Visual Studio...
by Bull
4年前
フォーラム: C言語何でも質問掲示板
トピック: Boostについて教えてください
返信数: 5
閲覧数: 9510

Re: Boostについて教えてください

ちょっと説明不足だったので補足します。 toolset で指定するのは Visual C++ のバージョンです。 Visual Studio の製品名と Visual C++ のバージョンが一致しないので混乱しますが、以下のようになっています。(括弧の中は Visual Stduio のバージョンです。) VC++ 製品名 10.0 : Visual Studio 2010 (10.0) 11.0 : Visual Studio 2012 (11.0) 12.0 : Visual Studio 2013 (12.0) 14.0 : Visual Studio 2015 (14.0) 14.1 ...
by Bull
4年前
フォーラム: C言語何でも質問掲示板
トピック: Boostについて教えてください
返信数: 5
閲覧数: 9510

Re: Boostについて教えてください

Boost に限りませんが、.lib をビルドするときと .exe をビルドするときは、原則としてコンパイラのバージョンを合わせる必要があります。 ライブラリをビルドするときに指定した toolset(=コンパイラ)で msvc-14.0 を指定したと言うことは、Visual C++ 14.0 (Visual Studio 2015) 向けのライブラリをつくるということです。 .exe をビルドするときに vc100 を要求されたと言うことは、Visual C++ 10.0 (Visual Studio 2010) でビルドしたものと思われます。 toolset=msvc-10.0 でライブラ...
by Bull
4年前
フォーラム: C言語何でも質問掲示板
トピック: 文字化けについて
返信数: 12
閲覧数: 12916

Re: 文字化けについて

最初にお断りしておきますが、私は Lua については全く知りません。 Windows の一般的な文字コードについての概要についてだけですが、多少なりとも参考になれば幸いです。 ① Windows の内部コードは UTF-16 ですので、UTF-16 がネイティブな文字コードと言えます。 例えば、ウィンドウ(正確にはデバイスコンテキスト)に文字を描画するときに TextOut を、コンソールに文字を表示するときには WriteConsole という API を使用しますが、それぞれワイド文字 (Unicode) とマルチバイト文字 (Shift_Jis) の関数が用意されています。これは Vis...
by Bull
4年前
フォーラム: C言語何でも質問掲示板
トピック: 追加するヘッダーファイルが見つからない
返信数: 3
閲覧数: 10219

Re: 追加するヘッダーファイルが見つからない

入れているのは Visual Studio 2019 Express です。 インストールオプションは、デスクトップ開発、ゲーム開発 です。 2017からMFCがExpressからはずされたとの記事があり、 探している afxinet.h はMFCの中にあるとの記事もありました。 "afx何チャラ.h" というヘッダーファイルは MFC 関連のヘッダーファイルです。 そして Express は昔(Visual C++ 2005)から MFC はサポートしていません。 Visual Studio Community 2019 をお使いください。 企業で Community を使うのはいろいろ制...
by Bull
4年前
フォーラム: C言語何でも質問掲示板
トピック: キャラクタの画像をゲーム画面に表示させたい
返信数: 2
閲覧数: 8714

Re: キャラクタの画像をゲーム画面に表示させたい

キャラクタ画像が表示されない理由ですが、ScreenFlip 関数の前に何も描画されていないので何も表示されません。 また SetDrawScreen(DX_SCREEN_BACK) なので、DrawGraph 関数で裏画面に描画されますが、そのあとにすぐ WaitKey 関数でキー入力待ちになるので、やはり表示はされません。 さらにキー入力があった後で DxLib_End 関数が呼ばれ、すぐに return するのでプログラムはそのまま終了します。 直し方はいろいろありますが、キャラクタ画像を表示するだけなら以下のようすればできます。 int WINAPI WinMain(HINSTANCE...
by Bull
4年前
フォーラム: C言語何でも質問掲示板
トピック: デバッグ描画の最下層のDrawを知りたいです
返信数: 1
閲覧数: 6335

Re: デバッグ描画の最下層のDrawを知りたいです

ソースレベルで追えないようならば、機械語レベルで追うしかないかもしれません。
Visual Studio のデバッガーでもある程度できかもしれませんが、WinDbg という無茶苦茶強力なデバッガーがあります。
こちらからダウンロードできます。
by Bull
4年前
フォーラム: C言語何でも質問掲示板
トピック: mac gccの使用者
返信数: 2
閲覧数: 6987

Re: mac gccの使用者

私は mac を使ったことはないのですが、聞いた話によると Visual Studio for mac では C/C++ の開発はできないようです。
全く門外漢ですが、mac での C/C++ の開発は xcode が定番のようです。最近は Visual Studio Code の話もよく聞きますので、VS Code でも C/C++ の開発はできるようです。
余談ですが、Visual Studio と Visual Studio Code (VS Code) は全く別物です。
by Bull
4年前
フォーラム: C言語何でも質問掲示板
トピック: 多次元配列と演算子
返信数: 2
閲覧数: 6547

Re: 多次元配列と演算子

char minoShapes[MINO_TYPE_MAX][MINO_ANGLE_MAX][MINO_HEIGHT][MINO_WIDTH] ={} このソースコードはおそらく4次元配列だとおもうんですが、ネットのどのサイトでも3次元配列までしか記述されていなく、(3次元配列は、縦方向(Y方向)と横方向(X方向)と奥方向(Z方向)にデータの広がりがあります。)と記述されていたのですが、4次元配列はどのようになるのでしょうか? テトリスは平面つまり二次元ですから、ミノ(テトリミノ)のシェイプ(形状)としては、二次元配列ですみます。 しかし、ミノは七種類のタイプ(O, S, Z, J, L, ...
by Bull
4年前
フォーラム: C言語何でも質問掲示板
トピック: Windows7
返信数: 15
閲覧数: 8751

Re: Windows7

Windows7 を使っています。
サポートが切れたらどうするか正直決めかねていますが、そのまま使用することも考えています。(インターネットには極力接続しない前提で)

Windows 10 へのアップグレードはメーカーが保証しないので早々に断念しました。
もともと Windows 8 のダウングレードなので Windows 8.1 をインストールして延命を図ろうかとも思いましたが、テスト環境として Windows 7 (32bit) を残したい思いもあり、現在ではそのまま使用するに気持ちが傾いています。
by Bull
4年前
フォーラム: C言語何でも質問掲示板
トピック: C++の型について
返信数: 2
閲覧数: 2665

Re: C++の型について

Direc2D も XAudio2 も全く詳しくはないので、C++ と Visual Studio に関することだけ。 (C++ と Visual Studio に精通しているわけではないですが) C++ では文字列リテラルの型は const char[] です。 C++98/03 では諸般の事情で、char * への代入が許容されていましたが、C++11 以降ではエラーになります。とはいえ、処理系によってはデフォルトの動作としてはエラーにしない場合もあります。 Visual C++ でもデフォルト(コンパイルオプションなし)ではエラーは出ないようですが、/permissive- オプションを...
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: putchar()関数について質問します。
返信数: 6
閲覧数: 5320

Re: putchar()関数について質問します。

修理中だった PC (Windows 10 Home 64bit Version 1809) が返ってきたので、今更ですが実験してみました。 以下のコンパイラーで #1 のプログラムをコンパイル実行しました。 GCC gcc (i686-posix-dwarf-rev0, Built by MinGW-W64 project) 8.1.0 BCC32 Embarcadero C++ 7.30 for Win32 Copyright (c) 2012-2017 Embarcadero Technologies, Inc. Embarcadero Technologies Inc. bcc32c ...
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: [雑談]Visual Studio 2019 正式版公開
返信数: 3
閲覧数: 3464

Re: [雑談]Visual Studio 2019 正式版公開

先日 (4/15) やっとインストールしました。と言ってもデスクトップ開発だけなんですけど。 Visual Studio 2017 がインストールされているためか、ダウンロードしたファイルはそれほど多くなかったです。(1.3 GB程度) 最初にインストーラーでワークロードを選択したときは 5GB以上必要となっていたので、時間がかかることを覚悟したのですが、実際にインストールが始まってみれば一時間もかからずに終わりました。 Windows SDK とか、.NET Framework は 2017 と共通みたいです。 細かい違いはありますが、全体の印象は 2017 と変わらないですね。 以前に作成...
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: sprintf + utf8 + "取得" でアサーションエラー
返信数: 3
閲覧数: 2939

Re: sprintf + utf8 + "取得" でアサーションエラー

ソースファイル (corecrt_internal_stdio_output.h) を詳細に読んだわけでないのですが、ロケールよっては?、printf 系の関数は書式文字列の整合性をチェックするようです。
u8"取得"のバイト列を Shift_JIS として解釈すると E58F(蜿) 96E5(門) BE(セ) 97 00 となります、97 はマルチバイト文字の1バイト目ですが、次が null 文字であるためエラーになっているようです。
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: Visual studioについて
返信数: 5
閲覧数: 3514

Re: Visual studioについて

Windows.h は Windows SDK の一部ですが、Visual Studio 2015 から C言語の標準ライブラリーも Windows SDK の一部になったので、C++ によるデスクトップ開発をインストールしていれば一緒に Windows SDK もインストールされ、Windows.h も入っているはずです。意図的に Windows SDK をはずせば別ですが、デフォルトではインストールされたと思います。Visual Studio Installer で確認できますので、インストールされていないようでしたら、インストールすればいいと思います。 Windows10 のバージョンア...
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: 動作確認のお願い
返信数: 5
閲覧数: 3922

Re: 動作確認のお願い

#2 に追加ですが、ランタイムライブラリーが必要ですね。

Microsoft Visual C++ 再頒布可能パッケージ
これをインストールするようにご友人にお伝えください。

または、スタティックリンクするようにプロジェクトを変更すれば、ランタイムライブラリのインストールは必要なくなります。
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: 動作確認のお願い
返信数: 5
閲覧数: 3922

Re: 動作確認のお願い

実行はしていないのですが、デバッグモードでビルドされているようです。
リリースモードでビルドすれば、開発環境以外でも動くようになるのではないでしょうか。

それと、できたプログラムを配布するときは、リリースモードでもデバッグできないようにプロジェクトのプロパティーを変更した方がいいですよ。
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: Visual Studio C言語の質問
返信数: 9
閲覧数: 3822

Re: Visual Studio C言語の質問

古い記憶ですが、コンソールアプリケーションで IME の制御はできなかったような。
“C++ IME 制御” などと検索すると、いろいろサンプルプログラムも出てきますが、コンソールアプリケーションのものは見付からないので、できないのかもしれません。
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: mingw64でのDxlib使用法
返信数: 6
閲覧数: 4966

Re: mingw64でのDxlib使用法

私自身 mingw64 で DXライブラリを使用していないのですが、もしかして指定するライブラリが足らないのでは?
-ltiff とか -lopusfile とか。

参考
Gnu C++ (MinGW)によるDXライブラリの使い方
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: OSのビット数を調べたいのですが・・・
返信数: 4
閲覧数: 3546

Re: OSのビット数を調べたいのですが・・・

追記します。

こちらの環境は
Windows 7 Pro (32bit) Visual Studio 2015
Windows 8.1 Pro (64bit) Visual Studio 2017

.NET Framework は 4.5 です。
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: OSのビット数を調べたいのですが・・・
返信数: 4
閲覧数: 3546

Re: OSのビット数を調べたいのですが・・・

回答になってなくて申し訳ないですが、下の画像は Visual Studio でオブジェクト ブラウザーを開いているスクリーンショットです。 System.Environment.Is64BitOperatingSystem は mscorlib に含まれるようですので、特別な Imports などは必要ないと思われます。 Module Module1 Sub Main() If Environment.Is64BitOperatingSystem Then Console.WriteLine("64Bit OS です") Else Console.WriteLine("64Bit OS ではあ...
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: コマンドライン引数を用いたファイルコピーについて
返信数: 2
閲覧数: 1941

Re: コマンドライン引数を用いたファイルコピーについて

copy() 関数を修正します。

コード:

void copy(FILE *src, FILE *dst)
{
	int ch;
	while ((ch = fgetc(src)) != EOF) {		//修正
		fputc(ch, dst);
		//fflush(stdout);					//特に必要ないと思う
	}
}
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: wordのように
返信数: 7
閲覧数: 4506

Re: wordのように

エディットコントロールを使用するなら、C言語でもできます。
こういうページがあります。
メモ帳を作る
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: Win32のCSV読み取りで文字化けする理由が分かりません
返信数: 31
閲覧数: 18373

Re: Win32のCSV読み取りで文字化けする理由が分かりません

Visual Studio のプロジェクトには“Unicode 文字セットを使用する”と“マルチ バイト文字セットを使用する”があります。 プロジェクトのプロパティーの[全般]→[文字セット]で設定できます。 “Unicode”にすると、プリプロセッサで "UNICODE" が定義され、“マルチ バイト”にすると、プリプロセッサで "_MBCS" が定義されます。 詳細は 今さら聞けない、教えてもらえない!! Unicode /マルチバイト文字対応 国際化VC ++ プログラミングの基礎!! などを参照してください。 その他に大事なこととして、Win API の関数が切り替わるということです。...
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: C言語:ポインタとメモリ空間
返信数: 5
閲覧数: 4755

Re: C言語:ポインタとメモリ空間

Visual C++ 2010 のコンパイラーは古いですからね。最近の物 (Visual Studio 2017) でしたら、そのままでもコンパイルエラーは出ないです。VC 2010 は規格としては古い (所謂 C89) ですが、最近の物は C11 をある程度サポートしていています。
特に理由がなければ、最新の物がいいと思います。
2017 では出ないとも言われましたが、Express Edition もあるようなので。
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: WinMainに赤線がひかれるのはなぜですか?
返信数: 3
閲覧数: 2577

Re: WinMainに赤線がひかれるのはなぜですか?

"Windows SDK バージョン" が合っていない可能性があります。

プロジェクトの "Windows SDK バージョン" はたぶん 10.0.15063.0 だと思いますが、最近 Visual Studio をインストールしたとすると、そのバージョンはインストールされていない可能性があります。

プロジェクトのプロパティ[全般]→[Windows SDK バージョン]で適当なものを選択してください。
あるいは、プロジェクトを右クリックして、"プロジェクトの再ターゲット"を実行してください。
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: [c++] mapの要素(pair?)の[a,b]表記
返信数: 2
閲覧数: 2080

Re: [c++] mapの要素(pair?)の[a,b]表記

そのページに書かれているように C++17 で追加された、 構造化束縛ですね。
g++ 6.3.0 ではどうかわかりませんが、g++ 7.3.0 ではコンパイルできました。
ただし、-std=c++17 のオプションが必要になります。
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリの導入
返信数: 4
閲覧数: 3213

Re: DXライブラリの導入

ビルドに失敗しているのではないでしょうか?
もし、何らかのエラーが出ているようでしたら、それを教えてください。

GameProg は特に設定しなくとも、ビルド/実行できるはずですが、"Windows SDK のバージョン"には注意して下さい。Visual Studio をインストールするときに、指定した Windows SDK のバージョンと一致いていないと、ビルドに失敗します。"新・C言語~ゲームプログラミングの館" では Windows 8.1 SDK をダウンロードするように、設定しているので、プロジェクトも 8.1 を指定すれば間違いないです。
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: C言語 デバック時のブレークポイントの出現理由が分からない
返信数: 7
閲覧数: 7526

Re: C言語 デバック時のブレークポイントの出現理由が分からない

また,以下の様な忠告が出ました. //////////////////////// Debug Assertion Failed Program: ディレクトリ¥Project1.exe File: minkernel¥crts¥ucrt¥scr¥appcrt¥stdio¥fread.cpp Line: 48 Expressin: stream!=nullptr For information on how your program can cause an assertion failure, see the Visual C++ documentation asserts. (Press...
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: C言語 デバック時のブレークポイントの出現理由が分からない
返信数: 7
閲覧数: 7526

Re: C言語 デバック時のブレークポイントの出現理由が分からない

エラーの原因かどうかは分かりませんが、このプログラムにはいくつかの問題があります。

1. fpen_s() でエラーチェックしていない。
 "sample.bmp" が存在しない場合、fread() でエラーが発生します。
2. 画素情報として 512×512 固定の配列を用意していますが、それ以上の大きさの bmp ファイルを読込んだ場合、配列の大きさを越えて読込んでしまう。
3. 24bit カラーのみを対象としているが、チェックをしていない。
4. 1ラインのデータが 4 の倍数以外の場合を考慮していない。
5. 画素情報を、縦を先に読込んでいるが、bmp は1ラインごとに保存されている。
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: Win32APIのTextOutで変数を表示する方法が分かりません
返信数: 13
閲覧数: 8616

Re: Win32APIのTextOutで変数を表示する方法が分かりません

とりあえず "error C4996" で検索してみましょう。いろいろ対策があります。 プロジェクトのプロパティーで、SDL チェックをいいえ (/sdl-) にすると、エラーではなく警告 (warning)になります。 プロプロセッサの定義に _CRT_SECURE_NO_WARNINGS を追加すれば、警告も出なくなります。 _stprintf_s() 関数、または _sntprintf_s() 関数を使う方法もありますが、それぞれ _stprintf() 関数とはパラメーターが異なりますので、注意して下さい。 個人的には、例外を回避しやすい _sntprintf_s() 関数の方が好きです。
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: C言語のコンパイルエラーについて
返信数: 3
閲覧数: 2592

Re: C言語のコンパイルエラーについて

こんにちは。以下のソースコードでgccでコンパイルしたときに highscore.c:42: error: expected ‘)’ before ‘*’ tokenという エラーが出ます。()や,がおかしいというのは想像がつくのですが 42行目には特におかしいところが見つけられませんでした。 よろしくお願いします。 エラーの原因は分かりませんが、このプログラムは "}" が足りないようです。 私の環境では "ncurses.h" がないのでコンパイルはできないのですが、 int getTU(POSITION *player,POSITION *treasure,int *numTreasu...
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: vector配列を使って単語の長さ順にソートする
返信数: 9
閲覧数: 5492

Re: vector配列を使って単語の長さ順にソートする

の「const std::string &str1, const std::string &str2」の意味を教えていただけませんか const な (変更出来ない) std::string 型の参照 str1 と str2 です。 関数の引数を参照にすると、関数内部での変更が呼び出し元に反映されます。 precede() 関数では str1 と str2 は変更されないし、変更されては困ります。 const はつけてもつけなくても、処理に変わりはありませんが、関数内で変更出来ないようにするとともに、関数の利用者に対しても変更しないことを、表明しています。 bool precede(std:...
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: vector配列を使って単語の長さ順にソートする
返信数: 9
閲覧数: 5492

Re: vector配列を使って単語の長さ順にソートする

反復子を使うのかな,と思い, std::vector<char>::iterator p= vector.begin(); と書くと「vector.begin()」の「vector」に赤波線が引かれてエラーが出ます. イテレーターの書き方が間違えていますね。 std::vector<std::string>::iterator p = vector.begin(); とすべきでしょう。 または、C++11 以降なら auto p = vector.begin(); でもいいですが、p は使われていないようです。 bool precede(); も変ですね。 文字列の長さを比較するのに、肝心の...
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: MFCで描画
返信数: 3
閲覧数: 5058

Re: MFCで描画

バイナリデータの意味するところは私には分かりませんが、16Bit のビットマップデータなのでしょうか。 正しくビットマップが出来ていれば、BitBlt でエラーになることはないと思いますが、ビットマップはどのように作成していますか? CBitmap を作成して、CImge に Attach するのは間違ってはいませんが、CImage でもビットマップは作成できます。 例えば以下のサンプルでは、100×100 の 16Bit ビットマップを作成して、データを直接書込んでいます。 CImage image; image.Create(100, 100, 16); HBITMAP bmp = (HB...
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: MFCで描画
返信数: 3
閲覧数: 5058

Re: MFCで描画

CImage はイメージデータを管理するクラスで、BMP、GIF、JPEG、PNG を扱えます。内部で DIB を保持していますので、それ以外の形式でも DIB に変換できるのであれば、CImage を使用してピクチャーボックスに表示できます。
送られてくる画像データが何であるかが一番大切ですね。
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: クイックソートについて
返信数: 2
閲覧数: 3513

Re: クイックソートについて

データ量が多いということもありますが、クリックソートの再帰呼び出しでスタックオーバーフローが起こっているようです。 対症療法的にはスタックを増やせばいいと思います。お使いのコンパイラーによって違いますが、VC++ ならばプロジェクトのプロパティーでリンカーのオプションで設定できます。 根本的に見直すならば、クイックソート関数で、ピボットの選び方を変えればいいと思います。 ご提示のソースでは配列の左端をピボットにしていますが、データが降順であると最悪ケースになってしまっているようです。そのため再帰呼び出しが深くなりスタックを食い潰しているようです。クイックソートではピボットの選び方は重要ですが、...
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: 間接参照のレベルが異なっていてエラーが出ました。。わかる方助けてください!!
返信数: 2
閲覧数: 7221

Re: 間接参照のレベルが異なっていてエラーが出ました。。わかる方助けてください!!

fopen_s() の返却値は errno_t です。 警告メッセージの通り型が違います。 このままでは、fp を上書きしてしまうのでダメですね。 以下のようにすればいいと思います。 #include <stdio.h> #include <string.h> main() { FILE *fp; // FILE型構造体 char fname[] = "test.dat"; int Index = 0; /* ファイルのオープン */ //fp = fopen_s(&fp, fname, "r"); errno_t err = fopen_s(&fp, fname, "r"); //fopen...
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: タイトルバーの制御
返信数: 7
閲覧数: 9491

Re: タイトルバーの制御

あらかじめお断りします。以前に書いたことやこれから書くとは私が独自で調査したものあるいは、想像で書いているもので、必ずしも正しいとは限りません。 その点、ご承知置きください。 まず訂正からになってしまってすいません。 chromeは各タブがウィンドウだったのですね。知りませんでした。 これは違いました。タブの部分を含めて子ウインドウだと思っていたのですが、親ウインドウ(フレーム)に書かれていました。タブのクリックで表示するページが切り替わりますが、これらは Windows のタブコントロールといったものは使ってないようです。自前でやっているのでしょうが、具体的な方法はわかりません。 タブの部部...
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: タイトルバーの制御
返信数: 7
閲覧数: 9491

Re: タイトルバーの制御

あまり詳しくないのですが、回答がないようなので概要だけ。 タイトルバーなどの非クライアントエリアを描画するためには、幾つか方法があるようです。 GetWindowDC() 関数で取得したデバイスコンテキストは、ウィンドウ全体に描画出来ます。 WM_NCPAINT をハンドルして、描画する方法もあります。Windows 標準でないデザインにするので、「自分でゴリゴリ描画」するしかないですね。 Chrome は全体の枠(フレーム)がひとつのウィンドウで、各タブも一つ一つがウィンドウです。 Chrome が使用しているかどうかは分かりませんが、矩形以外のウインドウはリージョンを設定すれば出来ます。 ...
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: VC++ ビルド後の実行ファイル (exe) について
返信数: 3
閲覧数: 3998

Re: VC++ ビルド後の実行ファイル (exe) について

ランタイムライブラリを使用しないようなビルド方法はあります。
すべてに通用する方法ではありませんが、例えば Visual Studio でネイティブなプログラムならば、プロジェクトのプロパティでランタイムライブラリの項目を【マルチスレッド (/MT)】にすればいいです。
boost もスタティックリンクするライブラリを使用すれば、とくにランタイムライブラリを必要とはしないです。
boost のライブラリはビルドするときに DLL を使用するかスタティックライブラリを使用するか選べます。
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: 標準入力に対するエラー処理について
返信数: 4
閲覧数: 5210

Re: 標準入力に対するエラー処理について

bad() は ios_base::badbit が設定されていると true を返します。 fail() との違いを確認するために入れたのであって、このプログラムでは 特に必要なかったかもしれないですね。 badbit はストリームに不整合があって場合に、セットされるのですが、 コンソール(キーボード)やディスクファイルから読込んでいる限り、 あまりエラーになることはないかもしれません。 ignore() は入力ストリームを読み捨てます。例えば数字以外("abcd"など)を 入力した場合 fail() が true になりますが、入力された文字列はそのまま ストリームに残ったままです。間違っ...
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: 標準入力に対するエラー処理について
返信数: 4
閲覧数: 5210

Re: 標準入力に対するエラー処理について

#include <iostream> int main(void) { using std::cin; using std::cout; using std::cerr; int num; for (;;) { cout << "Input :"; cin >> num; if (cin.fail()) { if (cin.bad()) break; if (cin.eof()) break; cerr << "Input Error\n"; cin.clear(); cin.ignore(INT_MAX, '\n'); } else { cout << "Number:" << num ...
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: 整数商, 余り
返信数: 7
閲覧数: 14234

Re: 整数商, 余り

筆算で割り算をするときに、「何回引き算が出来るか」で行うことは通常はありません。 しかし、割り算を禁止と言われれば一番最初に思いついたのがそれです。同時に余りも求まりますし。 例えば、50÷8 を計算するときほぼ暗算で 6 あまり 2 と出ますが、50から8を引いてもたいした手間ではありません。もちろん桁数が大きくなると大変ですが、小さい桁で出来れば桁が大きくなってても、手順は同じです。 「割り算は引き算の繰り返しで出来る」と授業で教わったかどうかはすでに記憶があやふやで、 定かではないのですが、一般常識として理解していました。 ビットシフトで割り算が出来るのは、プログラミングを勉強し始めてか...
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: オープンハッシュのプログラム作成について
返信数: 2
閲覧数: 3972

Re: オープンハッシュのプログラム作成について

とりあえずリストは

コード:

typedef struct list {
	long  key;
	struct list *next;
} List;
ではないでしょうか。
by Bull
5年前
フォーラム: C言語何でも質問掲示板
トピック: 整数商, 余り
返信数: 7
閲覧数: 14234

Re: 整数商, 余り

これはプログラムの問題と言うよりは、算数の問題ですね。

これをプログラムでは無く、手作業ですることは出来ると思います。
その手順を詳細に書き出して、それをプログラムにすればできあがりです。
by Bull
6年前
フォーラム: C言語何でも質問掲示板
トピック: 構造体配列をポインタ変数から間接参照したい
返信数: 4
閲覧数: 4282

Re: 構造体配列をポインタ変数から間接参照したい

解決して何よりですが、このままでは pt を使う意味が無いですね。 次のようにすれば意味が出てくるでしょう。 #include <stdio.h> typedef struct student { int id; char name[20]; }STUDENT; int main(void) { STUDENT st[10]; STUDENT *pt; FILE * fp = fopen("list.txt", "r"); for (pt = st; fscanf(fp, "%d %s", &pt->id, pt->name) != EOF; pt++) { printf("%d %s\n",...
by Bull
6年前
フォーラム: C言語何でも質問掲示板
トピック: 構造体配列をポインタ変数から間接参照したい
返信数: 4
閲覧数: 4282

Re: 構造体配列をポインタ変数から間接参照したい

#include <stdio.h> typedef struct student { int id; char name[20]; }STUDENT; int main(void) { int i; STUDENT st[10]; STUDENT * pt = &st[0]; FILE * fp = fopen("list.txt", "r"); for (i = 0; fscanf(fp, "%d %s", &(*(pt + i)).id, &(*(pt + i)).name) != EOF; i++) { printf("%d %s\n", (*(pt + i)).id, (*(pt ...
by Bull
6年前
フォーラム: C言語何でも質問掲示板
トピック: std::stackの末尾要素のdeleteについて
返信数: 2
閲覧数: 3014

Re: std::stackの末尾要素のdeleteについて

18 行目ですが、

コード:

	delete sTest.top;
sTest.top は関数なので、delete はできないと思いますが、コンパイルエラーになりませんか。

コード:

	delete sTest.top();
とすればいいのではないでしょうか。
by Bull
6年前
フォーラム: C言語何でも質問掲示板
トピック: ファイルの文字を配列に格納したい
返信数: 1
閲覧数: 2257

Re: ファイルの文字を配列に格納したい

ご提示のソースファイルではコンパイルエラーが出るようですが、どのように実行されましたか?

とりあえず 20 行目を

コード:

		fscanf(fp, "%d ,%d", &A1[i], &A2[i]);
とすれば、こちらではうまくいきました。
by Bull
6年前
フォーラム: C言語何でも質問掲示板
トピック: エラーE0144  エンティティの初期化
返信数: 2
閲覧数: 13781

Re: エラーE0144  エンティティの初期化

これはインテリセンスのエラーだと思いますが、コンパイル時にも出ますか?
コンパイルエラーでないのであれば、無視するのも一つの手です。

エラーの理由は文字列リテラルの型は const char [] であるのに
char * の初期化に使っているため、型が違うといっているのでしょう。

プログラムの修正は 20行目を

コード:

onst char *g_images[] = {
とすればいいです。

E0167 型 "const char *" の引数は型 "char *" のパラメーターと互換性がありません
こちらも参照してみてください。
by Bull
6年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリ「visualstudio」の設定について
返信数: 2
閲覧数: 1717

Re: DXライブラリ「visualstudio」の設定について

Visual Studio で新規のプロジェクトを作成しようとしているのでしょうか? どこを探してもwin32が見当たらないです。 現在の Visual Studio 2017 には Win32 の項目はありません。 Win32 の開発が出来なくなったわけではなく、名前が変わりました。 DxLib での開発は“Windows デスクトップ”を選ぶ事になります。 Visual Studio はバージョン、エディションにより操作がかなり違います。 また、Visual Studio 2017 は頻繁にアップデートしていて、それによっても違いがあります。 質問するときはそれらを明記していただいた方がス...
by Bull
6年前
フォーラム: C言語何でも質問掲示板
トピック: E0167 型 "const char *" の引数は型 "char *" のパラメーターと互換性がありません
返信数: 16
閲覧数: 24559

Re: E0167 型 "const char *" の引数は型 "char *" のパラメーターと互換性がありません

char title[80]; char author[40]; タイトルと作者は固定長で定義されていますが、これに 80/40 文字以上をコピーしたらどうなるでしょう? そんなことしたら駄目ですよね。strcpy() ではそういうチェックは出来ませんから、strcpy_s() を使ってくださいと言うことなんだけど、そこは本質的なとこじゃないから、とりあえずエラー無しでコンパイルするためには、プログラムの先頭に #define _CRT_SECURE_NO_WARNINGS を追加してください。 C++なら std::string を使いましょうという話になりそうですが、それはまあ置いておい...
by Bull
6年前
フォーラム: C言語何でも質問掲示板
トピック: E0167 型 "const char *" の引数は型 "char *" のパラメーターと互換性がありません
返信数: 16
閲覧数: 24559

Re: E0167 型 "const char *" の引数は型 "char *" のパラメーターと互換性がありません

tk-xleader さんが書きました:
6年前
Bull さんが書きました: ただ、これは歴史的経緯で許容されているはずです。
C++11以降は、文字列リテラルをchar*に暗黙変換できるという仕様は削除されました。
あっ、そうなんですね。
C++98でもそうしたかったらしいのですが、そうできなかったという話を聞いたことがあります。

文字列リテラルは const char * で受けるのが正当なのでしょうが、それを厳密にやってしまうと、過去のソースの修正が大変なことになりそうです。そういうこともあって、多くのコンパイラーではまだ const 無しで受けることを許容しているのでしょうね。
もちろん今後作成するソースは const を付けるべきですが。
by Bull
6年前
フォーラム: C言語何でも質問掲示板
トピック: E0167 型 "const char *" の引数は型 "char *" のパラメーターと互換性がありません
返信数: 16
閲覧数: 24559

Re: E0167 型 "const char *" の引数は型 "char *" のパラメーターと互換性がありません

以前どこかで似たような回答をした記憶があるんだけど... 何でこのエラーが出るのかちょっと不思議 まずエラーになる理由ですが、C++ では文字列リテラルの型は const char [] です。これを関数の実引数に使うと const char * に変換されます。一方 void store(char *t, char *name, int num); で、関数の仮引数は const 無しですので、互換性がないと言うことです。 文字列リテラルは変更不可なのに store() 内部で文字列を変更されてしまう可能性があるので、エラーにしているのでしょう。 ただ、これは歴史的経緯で許容されているはず...
by Bull
6年前
フォーラム: C言語何でも質問掲示板
トピック: テトリスの改良版をつくりたいのですが..
返信数: 2
閲覧数: 5762

Re: テトリスの改良版をつくりたいのですが..

エラーメッセージに描かれていますが、コンパイルオプションに /Zc:strictStrings が指定されているようです。
このオプションは既定では off で、プロジェクトでも通常は設定されないようなので、別途追加したのでしょうか?
特に必要で無ければプロジェクトのプロパティーから除けばいいと思います。
by Bull
6年前
フォーラム: C言語何でも質問掲示板
トピック: ファイル分割した際,構造体が未定義になる.
返信数: 3
閲覧数: 3517

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

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

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
6年前
フォーラム: C言語何でも質問掲示板
トピック: quick sort とselection sortの実行時間の計測
返信数: 2
閲覧数: 3892

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

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

コード:

     msec=timebf.time-msec;

コード:

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

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
6年前
フォーラム: C言語何でも質問掲示板
トピック: MIDI情報のTIMEの取得について
返信数: 1
閲覧数: 1348

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

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

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

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

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

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

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

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

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

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

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

コード:

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

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

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

Re: Visual Stadio2017について

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

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

Re: Visual Stadio2017について

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

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

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

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

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

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

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

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

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

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

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
6年前
フォーラム: C言語何でも質問掲示板
トピック: CScrollViewクラスについて詳しく解説してある本を探しています。
返信数: 2
閲覧数: 1695

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

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

Re: 未解決のシンボル

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

Re: 未解決のシンボル

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

Re: MIDIの取得について

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

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

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

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

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
6年前
フォーラム: C言語何でも質問掲示板
トピック: OLEによる関数呼出し時の引数の調べ方について
返信数: 6
閲覧数: 4956

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

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

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

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

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

Re: Runtime API と driver API

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

Re: Eclipse windows editionについて

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

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

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

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

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

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

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

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

すでに指摘されている事ですが、"/ZI"と"/GL"オプションは同時に指定できません。普通にプロジェクトを作成すると同時に指定される事はないはずですが...
もしどうしても出来ないのであれば、最初からプロジェクトを作り直してみた方がいいかもしれません。
あと、プロパティのコマンドラインで指定してあるオプションを確認できます。現状のプロジェクトがどうなっているか、見てみてください。

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