検索結果 945 件

by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: Excelデータベースについて
返信数: 3
閲覧数: 2609

Re: Excelデータベースについて

1)sqliteと比較し、何が利点なのでしょうか。 既存のExcelファイルやCSVファイルをデータベースとして扱うことが出来ます。 2)EXCELファイルとして開き、テーブルを見れるのでしょうか。 見ることが出来ます。 3)紹介されているCのプログラムはどのような環境でコンパイル できるでしょうか。できればLinuxで使いたいと思います。 コンパイル自体は色々な環境で実行できるでしょうが,実質的にはWindows環境でしか実行ができません。 ●データベースファイルはVBのプログラム(ソース無し) から操作しますが、何故か、EXCEL.exe自体もプログラム と一緒に配布(会社内だから良い?...
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: c++でif文が省略された(?)引数
返信数: 5
閲覧数: 3519

Re: c++でif文が省略された(?)引数

ifが省略されたわけではないです。 bool型に|演算子を使うのは珍しいですが……。 |演算子 : 式「(b == 0) | (b == 3)」は式「(b == 0)」の結果と式「(b == 3)」の結果のビットごとの論理和を計算します。 ==演算子 : 式「b == 0」はbが0に等しければtrueを,そうでなければfalseを式の値にします。 ==演算子 : 式「b == 3」はbが3に等しければtrueを,そうでなければfalseを式の値にします。 さて,面倒なことに|演算子を使っているため,|演算子の両辺がint型に変換されます。 この時,trueは1に,falseは0になります。 そ...
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: config.exeの作り方
返信数: 9
閲覧数: 6646

Re: config.exeの作り方

[ルーラーとガイド]では無く[グリッド]にしたら,位置がグリッドに合いませんか。
対象のダイアログを表示した状態で,標準の[ダイアログ エディター]ツールバーにある[グリッドの切り替え]の他,[書式] - [ガイドの設定]から[グリッド]を選択するとできるかと思いますが。
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: [C#]データバインディングについて
返信数: 17
閲覧数: 7109

Re: [C#]データバインディングについて

this.バインドするクラスBindingSource.DataSource = new バインドするクラス(); として、バインドするインスタンスを作成していますが、このインスタンスへどうやってアクセスしたらいいんでしょうか?this.バインドするクラスBindingSource.DataSource.としても何もメンバーとかが出てきません。 上記のコードでは、単純にバインドするだけです。 DataSourceプロパティ はobject型なので,object型にないメンバーへはキャスト無しにアクセスすることは出来ません。 バインドするクラスのインスタンスを別途newし,それをprivate...
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: ドット演算子とアロー演算子
返信数: 5
閲覧数: 6084

Re: ドット演算子とアロー演算子

また、この場合はアロー演算子で、この場合はどっと演算子でやると良い。などわかりやすい例えってあげられませんか><; . と -> は直接置き換えられる物ではありません。 struct struct_t { int member; }; という型があった場合に, struct struct_t obj; と宣言された変数objのメンバーmemberにアクセスしたい場合は . を使う。 int value = obj.member; obj.member = 10; struct struct_t * ptr; と宣言された変数ptrのメンバーmemberにアクセスしたい場合は -> を使う。 ...
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: Winapi32、Tridetを用いたブラウザを作りたい
返信数: 2
閲覧数: 1934

Re: Winapi32、Tridetを用いたブラウザを作りたい

WebBrowserはOLE技術を使って処理することになります。 IOleClientSite と IOleInPlaceSite と IStorage を実装したクラスを用意すれば,使えるようです。 通常のCOMとして使おうとすると,HWNDの取得ができずに失敗する……というか失敗しました。 Embedded WebBrowser (IWebBrowser2) in Pure C++ (no MFC, etc) - CodeProject ここからサンプルがダウンロードできます。 面倒なのか,MFC/ATLを使わないWebBrowserのサンプルコードはなかなか見つかりませんでした。 MSD...
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: データベースで、親子のようで同一のリーレーションの表現の仕方
返信数: 6
閲覧数: 4067

Re: データベースで、親子のようで同一のリーレーションの表現の仕方

解決していますが,別の考え方を。 「品目」とその「バリエーション」という考え方でメニューを構成する,という方法があります。 この方法だと,「特盛りカツ丼」を追加してもテーブル構造を変更する必用がありません。 ただ,品目とバリエーションの組み合わせでメニューの名前と値段が変わるので,本来であれば交差テーブルになるテーブルがメニューそのものになります。 CREATE TABLE item ( item_id INTEGER PRIMARY KEY, item_name TEXT NOT NULL ); CREATE TABLE variation ( variation_id INTEGER PR...
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: config.exeの作り方
返信数: 9
閲覧数: 6646

Re: config.exeの作り方

Win32 Applicationとして作成し,ダイアログリソースを追加して表示する項目を作成,
DialogBox functionを呼び出してダイアログを表示,というのが簡単かと思います。

項目の数によってはPropertySheet functionの方がよいかもしれません。
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: ウィンドウにマウスイベントを送りたい
返信数: 3
閲覧数: 2554

Re: ウィンドウにマウスイベントを送りたい

試していないですが,WM_LBUTTONDOWNWM_LBUTTONUPをウィンドウに投げてみてはどうでしょうか。
ref) BM_CLICK message
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: プラットホーム
返信数: 4
閲覧数: 3352

Re: プラットホーム

処理の速度の差が出る場合もありますが,大きいのは利用可能なメモリの大きさです。 x86は32bit用の実行ファイルを生成するため,32bit環境でも64bit環境でも実行できますが,メモリは最大4GiB (実際のユーザーメモリ空間は2GiB未満) しか扱えません。 x64は64bit用の実行ファイルを生成するため,32bit環境では実行できず64bit環境のみで実行できますが,メモリは最大16EiB (実際はOSに依存,Windows 2016の場合は24TiB) まで扱えます。 動画編集ソフトなど,大量のメモリを必要とする場合などには,x64用のバイナリを作るとプログラムが簡単になる場合があ...
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: C#でテトリス作成中です。Application.Runとは一体?
返信数: 4
閲覧数: 4300

Re: C#でテトリス作成中です。Application.Runとは一体?

普通,Application.Runはデフォルトで作られるProgram.csの中に置いたまま使います。 今回のように,Form派生クラスの,それもインスタンスメソッドに書くことはまず行いません。 で,Application.Runは実質的にはメッセージループを回します。 MSG msg; BOOL result; while ((result = GetMessage(&msg, NULL, 0, 0)) != FALSE && result != -1) { TranslateMessage(&msg); DispatchMessage(&msg); } に相当する物です。 実際には,メッ...
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: obj ----> lib ?
返信数: 11
閲覧数: 4695

Re: obj ----> lib ?

VS 2015だと,
[スタートメニュー] - [Visual Studio 2015] - [開発者コマンドプロンプト for VS2015]
がVS 2017の
[スタートメニュー] - [Visual Studio 2017] - [Develper Command Prompt for 2017]
に相当します。
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: 選択ソートについての質問です。
返信数: 6
閲覧数: 5264

Re: 選択ソートについての質問です。

この選択ソート問題のソースコードを書いていたのですがどうにもエラーが消えません・・。 解決策を教えてください! エラーがコンパイル時やリンク時のエラーであるならば: エラーについて,マニュアル等をとにかく調べる。 原因を特定する。 プログラムを修正する。 エラーが実行時のエラーであるならば エラーについて,マニュアル等をとにかく調べる。 デバッガ等を使って,エラーの箇所を絞り込む。 デバッガ等を使って,原因を特定する。 プログラムを修正する。 解決「方法」です。1回で解決できなければ複数回行えばいいだけです。 汎用の解決方法です。このサイズのプログラムなら机上で追えばだいたい問題点はわかりま...
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: VC++ CLR で 静的フィールドに Stopwatch を定義したい(改)
返信数: 7
閲覧数: 3932

Re: VC++ CLR で 静的フィールドに Stopwatch を定義したい(改)

やりたい事は hファイルでもcppファイルでも Stopwatchを使えるようにしたいです。 シングルトンクラスがStopwatchを持つなり,Stopwatchの静的フィールドを持つクラスを作ればよいです。 #pragma endregion//この直下に定義 Stopwatch^sw = gcnew Stopwatch();//ここに記述 この位置は,クラスの定義の内部ではないですか。 とりあえず,設計から見直すことをお薦めしますし,そもそもC++/CLIはC++ではないので, ネイティブのC++のプログラムを作りたいのであれば,C++/CLIではなくC++を使う CLIの世界のプログラ...
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: [python]ボウリングのスコア計算の連続ストライクでエラーが出る。
返信数: 7
閲覧数: 5010

Re: [python]ボウリングのスコア計算の連続ストライクでエラーが出る。

原因は何なのでしょうか? エラーメッセージにちゃんとあります。 File "C:/Users/keito940/PycharmProjects/BowlingScore/Bowling.py", line 7, in BowlScore total = ((pin[i])+(pin[i+1])+(pin[i+2])) IndexError: list index out of range このまんまでしょう。 最終フレームを認識して,最終フレームにストライクまたはスペアだった場合は特別扱いしないといけないのに,それがなされていません。 まぁ,そもそもストライクが1投あると色々おかしくなりそう...
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: 外部DLLの参照について
返信数: 8
閲覧数: 9125

Re: 外部DLLの参照について

Win32 DLLを利用するには,DLLを直接参照するのでは無く,インポートライブラリと呼ばれるライブラリをリンクします。
DLLをビルドすると,同時に作成される他,libコマンドに/defパラメータ(と.DEFファイル)を渡してインポートライブラリを作成することもできます。

同一ソリューションにDLLのプロジェクトが存在する場合には,参照で可能なようですが。これは特殊な例だと考えた方がよいでしょう。
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: visual studio が使えません
返信数: 3
閲覧数: 5318

Re: visual studio が使えません

ライセンス:試用期間延長(評価目的に限ります) この製品は次の方にライセンスされています: (メールアドレス)~ Profile 評価期間は終了しました。 ⚠延長した評価期間が終了しました。オンライン アカウントまたはプロダクトキーを使用してライセンスを取得します。 Visual Studio ProfessionalかVisual Studio Enterpriseの無料試用版を利用しているのでしょうか。 ダウンロードのページ の記述を見ればわかるとおり,これらは「無料試用版」です。 製品版を購入するにあたってのお試しとして使うものであって,製品版の購入無しに使い続けることが出来るものでは...
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: C++のデストラクタとコンストラクタについて
返信数: 1
閲覧数: 1401

Re: C++のデストラクタとコンストラクタについて

下記認識正しいかどうかお尋ねします。 なので,「認識が正しいかどうか」を訊ねられているものと考えます。 1.子クラスの某constructorの引数リストと親クラスの某constructorの引数リストがまったく同じであれば、”:”で親のconstructorをコールする必要はなく、 自動的に親のそのconstructorをコール直前に先にコールされる。 正しくないです。 根拠:ちょっと古いですがISO/IEC 14882:2011 12.6.2 Initializing bases and members / Paragraph 8。 12.9にInheriting constructor...
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: メモリ解放に制限?
返信数: 9
閲覧数: 6501

Re: メモリ解放に制限?

あるライブラリ(Opencv)の某クラス(Mat)のobject中のデータpointer (uchar* data)を外部からfreeを使って解放しようとしたら、いつも例外を起こします。 C/C++のライブラリは自分がどこにメモリを割り当てたかを知っていることができます。 そして,aligned_alloc, calloc, malloc, reallocで返されたポインタ (free/reallocで解放されたものを除く) 以外をfreeに渡した場合は未定義の振る舞いとなっていますから (C11の場合。7.22.3.3), 「自分が割り当てて返したのでは無いポインタ」を検出し,何らかの例外...
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: 標準出力出来ず セグメントエラー
返信数: 4
閲覧数: 3250

Re: 標準出力出来ず セグメントエラー

for文から出た後,i == Nになっています。
その後のscanfで,str1,つまりはstr1[N]にアクセスしようとしています。
str1はN個の要素しかないので,str1[N]へのアクセスはしてはいけません。
オフトピック
デバッガ使って一行ずつ実行すればすぐわかると思うのですが……。
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: ダウンロードしたソリューションのエラーが取れなくて困っています。
返信数: 10
閲覧数: 7505

Re: ダウンロードしたソリューションのエラーが取れなくて困っています。

とりあえず, This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. と「NuGetパッケージの復元を有効にしろ」と書いてあるのだから,それをしてみてはどうでしょうか。 [ソリューション エクスプローラー]でソリューションを選択してコンテキストメニューから[NuGet パッケージの復元]を選択することで,手動での復元が出来るはずです。 また,[ツール] - [オプション] - [NuGet パッケージ マネ...
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: DLL化の単位問題
返信数: 2
閲覧数: 1674

Re: DLL化の単位問題

決まった単位というのはないのですが,密接に関わるものは通常一つのDLLにまとめます。 わかりやすそうな方法としては,「これはどういうDLLですか」に対して一つの答えになる間は同じDLLに含める,というのがあるかと思います。 「○○と××するDLL」ならば,「○○するDLL」と「××するDLL」に分けた方が使いやすいですし, 「○○するDLL。ただし,△△.dllが必要」というような場合で,「△△.dll」の役割が「○○で使っていた中で他から使えそうなものを分離しただけ」ならまとめた方がよいでしょう。 まぁ,例外的に実装を選択するためだったり(利用するデータベースによって実装が変わる等),プラグ...
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: GUI作成方法について
返信数: 3
閲覧数: 2224

Re: GUI作成方法について

VC++という条件であれば,この内容だとDIALOGリソースにボタンを作って,DialogBoxで呼び出して処理するのが簡単な気がします。
この場合だと,必要なのはWin32API (一般的なもの + Media Foundation, Direct Show etc.) の内容になります。
なお,C++/CLIを用いてのWindows Formsはお薦めしません。C++/CLIでWindows Forms使うくらいなら,素直にC#やVisual Basicを使う事をお勧めします。
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: フォームアプリケーションについて
返信数: 11
閲覧数: 8486

Re: フォームアプリケーションについて

ttb さんが書きました:実際の例外の確認はどのように行えばよいのでしょうか?
デバッグ実行すれば,未処理の例外であるTypeInitializationExceptionが発生した時点で実行が中断されます。
あとは,その時に自動変数あたりに発生した例外が表示されているはずなので,そのプロパティを読んでいけばよいです。
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: フォームアプリケーションについて
返信数: 11
閲覧数: 8486

Re: フォームアプリケーションについて

Cannot find or open the PDB fileという文が多く見受けられえるのですがやはりこれが原因なのでしょうか? PDBはデバッグ用の情報ファイルです。 なので,これがないから動作しない,というようなことはありません。 'System.TypeInitializationException' のハンドルされていない例外が 不明なモジュールです。 で発生しました。 追加情報: '<Module>' のタイプ初期化子が例外をスローしました。 これは,CLI上のコードにおいて,クラスの静的なコンストラクタ (..ctor static method) が例外を発生させた場合に起...
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: send関数でのackのみ送信方法についてご教授ください
返信数: 2
閲覧数: 2879

Re: send関数でのackのみ送信方法についてご教授ください

どこの層の話をしているのでしょうか。
  • TCP層(やそれ以下の層)でのACKの話をしているのであれば,自前でTCP(やそれ以下の層)のドライバーを作っている場合を除いて,上位層はTCP(やそれ以下の層)がACKを返したとか知る必要が無いですし,それに依存するプロトコルを作ってはいけません。
  • アプリケーション層の話であれば,普通にsendを使ってACKを送ればよいでしょう。ACKだけを送る方法が無いのであれば,プロトコルの不備になります。ただし,Nagleアルゴリズム等によって,1 octetだけ等の小さな情報の送信は送信自体が遅延される可能性があります。
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: マクロについて
返信数: 2
閲覧数: 1817

Re: マクロについて

関数形式マクロは,根本的には単純な文字列置き換えでしかありません。 書かれているコードの,min3のみ展開すると, #include <stdio.h> int main(void){ int result1,result2,result3; result1 = { if(((2) < (1)) && ((2) < (3))){ return(2); }else if(((3) < (1)) && ((3) < (2))){ return (3); }else{ return (1); } }; result2 = { if(((1) < (2)) && ((1) < (3))){ retur...
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: std::listをメンバにもつクラスを削除しようとするときに例外が投げられる問題
返信数: 5
閲覧数: 5221

Re: std::listをメンバにもつクラスを削除しようとするときに例外が投げられる問題

さらに見てみましたが,deleteした後にそのオブジェクト(の残骸)に触ろうとしていますが,これは何故ですか。
deleteした後(明示的なデストラクタの呼び出しでも同じですが)に,そのオブジェクト(の残骸)へアクセスすることは未定義の振る舞いとなっています。
オフトピック
いくつかの例外はあります。ISO/IEC 14882:2011だと3.8の5段落など。
そもそも,Manager::enemyはEnemy * []ではなく,std::vector<Enemy>やstd::vector<std::shared_ptr<Enemy>>で十分ではないでしょうか。
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: C++言語のheaderファイルについて
返信数: 3
閲覧数: 2282

Re: C++言語のheaderファイルについて

ちゃんと調べ直したところ,ちょっと古いですが, 11 Member access control - 11.1 Access specifiers 2 The order of allocation of data members with separate access-specifier labels is unspecified という記述がありました。 これを勘違いしていたようです。 ただ,割り当て順が変わればパディングが変わる可能性があるため,クラスのサイズが変化する可能性は十分あり得ます。 もし,目的がクラスの実装を見せたくない,やヘッダファイルの参照が深くなることが問題,といった...
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: C#で以下のようなエラーが出るのですが対象方法をおしえてください。
返信数: 2
閲覧数: 7550

Re: C#で以下のようなエラーが出るのですが対象方法をおしえてください。

非標準のライブラリが関係するならば,そのライブラリの名前と,そのライブラリの公式サイトへのリンクくらいは張って欲しいのですが……。 とりあえず, The MapWindow project と仮定 今回の場合, sf.Lbaels.FontColor プロパティはuint型であるため, System.Dawing.Color から直接は変換できないためにエラーになっています。 ToArgb メソッドでARGBの値を取得し,Aの値を抜くために0x00FFFFFFと論理積と取って代入すればよいでしょう。 sf.Labels.FontColor = (uint)(Color.Red.ToArgb()...
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: std::listをメンバにもつクラスを削除しようとするときに例外が投げられる問題
返信数: 5
閲覧数: 5221

Re: std::listをメンバにもつクラスを削除しようとするときに例外が投げられる問題

例外を出すdeleteの上にある,明示的なデストラクタの呼び出しは何のために行っていますか。
明示的なデストラクタの呼び出しは,通常必要になることはありません。

あと,例外が発生するではなく,その例外の種類やメッセージも書いてください。
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: [VS2017]クラスウィザードの使い方
返信数: 4
閲覧数: 3741

Re: [VS2017]クラスウィザードの使い方

クラスウィザードの出自から,基本的にはMFC用のものです。
その機能の一部が,MFCでなくても使える,といった程度のもので,期待しているようなことはできないかと。
オフトピック
MSDN見ると仮想関数のオーバーライドはClassView + Propertyでできそうですが,実際にはできません
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: C++言語のheaderファイルについて
返信数: 3
閲覧数: 2282

Re: C++言語のheaderファイルについて

ヘッダーファイルを同一にする必要は無いですが,クラスの構造は同じにする必用があります。
クラスの構造とは,基底クラスの宣言の順序,メンバ変数の宣言の順序、仮想関数の宣言の順序などです。
public/protected/privateの順序を入れ替える,などもやってはいけません。

現実的な問題点としては,クラスの宣言を元にコンパイラは必要なメモリの量を決定するため,private変数を削るとコンパイラはメモリの量を少なく見積もってしまう,ということがあります。
結果として,変数へのアクセスが確保していないメモリへのアクセスになる可能性がでてきます。
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: C#+DxLibでUTF-16の文字を表示したい
返信数: 4
閲覧数: 2715

Re: C#+DxLibでUTF-16の文字を表示したい

DxLib公式サイトで配布されているライブラリは,Unicode版ではない実装になっています。 int __stdcall dx_SetWindowText( const char * WindowText) { return SetWindowText( WindowText); } このため,現在のコードページに存在しない文字を利用する事は出来ません。 DxLibの実装自体を見ると,Unicodeでビルドも可能なはずなので,Unicodeビルド + Unicode用DLL, という構成を自分でビルドしてしまえば,現在のコードページに含まれない文字も(フォントがあれば)出力できると思います。...
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: 早急にお願いします。
返信数: 11
閲覧数: 7031

Re: 早急にお願いします。

「何が」分からなくて「何を」よろしくお願いしているのでしょうか。
by YuO
6年前
フォーラム: C言語何でも質問掲示板
トピック: エラーの原因
返信数: 31
閲覧数: 17123

Re: エラーの原因

普通,現在の開発環境においてはソースレベルデバッガは用意されていると思いますし,デバッガにはブレイクポイントやソースシンボルを使ったウォッチ機能がついていると思いますが……。
この規模であれば,一行ずつステップ実行して変数の値が正しいかを調べていけば,どこで想定している状態になっていないかの絞り込みができると思うのですが。
# 想定している状態が無いというのは,そもそも「どうなるかがわかっていない」状態なので問題外。
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: あらゆる型のリストを受け取る関数を作りたい
返信数: 2
閲覧数: 1935

Re: あらゆる型のリストを受け取る関数を作りたい

文をそのまま読むと, void func<T> (IList<T> args) { /* ... */ } とかやりたいのかなぁ,と思ったり。 あ,でもこれだとIReadOnlyList<T>をとれないか……。 void func<T> (IEnumerable<T> args) { /* ... */ } と,IE<T>にすればIList<T>とIReadOnlyList<T>を両方取れますし, void func (IEnumerable args) { /* ... */ } とIEにすればIListまで使えますが……。 -- 20170425T0955+0900 modified: c...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: VBからC#への移行について
返信数: 4
閲覧数: 4022

Re: VBからC#への移行について

"Dim ShapeIds As Object"でググる と,このトピックの他に, Mapコントロールの追加example [Chapter 2] | OpenなGISのこと というサイトのみがヒットしました。 もし,このサイトを参考にしているのであれば,利用しているライブラリの公式サイト The MapWindow Project から Documentation - API Documentation - Shapefile - SelectShapes と辿れば,Examplesという項目があります。 そして,例えば SelectBox.cs を選択すると, if (sf.Select...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: VBからC#への移行について
返信数: 4
閲覧数: 4022

Re: VBからC#への移行について

変換の前に,Visual Basic側で
・UBound等のMicrosoft.VisualBasicの関数を使わないように変更する
・Option Strict Onにする
などをして,C#に変換しやすいようにした方がよいかと思います。

ShapeIdsが本来Objectの配列であるならば,ShapeIdsの型をObject()に変更して,VBでもLengthを使うようにした方がよいでしょう。
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: calloc + strcpyについて
返信数: 10
閲覧数: 6596

Re: calloc + strcpyについて

わん さんが書きました:このような結果となってしまった理由について、お願いしたいと思います。
たまたま。
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: オープンソースとゲームの相性
返信数: 8
閲覧数: 4305

Re: オープンソースとゲームの相性

ゲームのうちの,正しく「映画の著作物」的な面白さの部分はオープンにする事と相反してしまう面白さだと思います。 いわゆる,ネタバレによって面白さが減じる部分です。 それに対して,ゲーム自体としての面白さに関しては,公開する事によって面白さが減少することはないでしょう。 例として挙げるなら,ソースコードが公開されているわけではないですが,スーパーマリオブラザーズは各種ブロックの配置から敵の配置までわかっています。 しかし,それによって面白さが減るものではありません。 どちらを重視するかは作り手次第だと思います。 ただ,OSIの言う「オープンソースライセンス」やFSFの「フリーソフトウェア」では,ユ...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: calloc + strcpyについて
返信数: 10
閲覧数: 6596

Re: calloc + strcpyについて

わん さんが書きました:連続して領域を確保すると、どのように考えればよろしいでしょうか?
単なるバッファーオーバーランによる未定義動作の結果なので,「たまたまこうなった」としか考えようがないです。
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: 乱数の解読
返信数: 3
閲覧数: 2460

Re: 乱数の解読

この疑似乱数系を,どのように暗号に利用するのでしょうか。 パスワードにするだけであれば,十分な長さと文字種を用意すれば,事実上の強度の違いは存在しないと思います。 暗号化処理において通常,疑似暗号で作成したソルトとパスワードをハッシュ関数に通す事によって実際の暗号鍵を作り出します。 # 結城浩「 暗号技術入門 第3版 」第11章 通常暗号のクラックには辞書攻撃が最初に行われますが,これは人が入力する可能性の高いパスワードを先に試す事によって解読の可能性を上げるためであって,パスワードが乱数によって生成されたのであれば,乱数自体の解析よりもパスワード自体の総当たりで解読する事になると思います。 ...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: 乱数で負の数を取る場合と倍数を調べる場合
返信数: 4
閲覧数: 6870

Re: 乱数で負の数を取る場合と倍数を調べる場合

 1か0かから始まる範囲の乱数なら分かるのですが、  これが負の数となるとどう書いていいのかがどうしてもわかりません………。 乱数の範囲の最小値が0になるようにシフト(足し算)した範囲の乱数を発生させ、そのシフトを元に戻す(引き算)ことで求めることができます。  下の問題は出来たのですが、これだけがどうしてもわかりません。 基本的な部分は,理解していますか。 つまり,範囲[-10, 10]の乱数を発生させる事と,範囲[0, 20]の乱数を発生させることは同じことである,ということです。 後者の乱数を作る (コードを書く) 事はできるんですよね。 そこから前者を作り出すには,すぐにわかると思い...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: [c++]std::unique_ptrをコピーしたい
返信数: 9
閲覧数: 7785

Re: [c++]std::unique_ptrをコピーしたい

std::reverseに限定して書くならば,*firstがswappableであることを要求します。 つまり,今回に関しては,std::swap<MyClass>を特殊化し,その中でpimplをswapすればよいことになります。 まぁ,特殊化とはいえ外部からprivateなメンバを弄るのは気持ちが悪いので, swapメンバ関数を用意して特殊化されたstd::swapから呼ぶ事になると思いますが。 ref) ISO/IEC 14882:2011 ・17.6.3.2 Swappable requirements ・25.3.10 Reverse ¶2 ただ,24.4.1 Iterator tra...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: マップ表示プログラムのデバック中に例外がスローされた。
返信数: 15
閲覧数: 12029

Re: マップ表示プログラムのデバック中に例外がスローされた。

この場合、どうすればいいのでしょうか。 ちゃんと,デバッグすればよいです。 ただ,それだけです。 と宣言しているため、GetValue関数の戻り値が0か1でないと Stage.cppの14行目のDrawRectGraph関数でアクセス違反が発生します。 残念ながら,よっぽど変わった値でない限り,0x00000008へのアクセスは起きません。 0x00000008へのアクセス違反という事実から,((T*)nullptr)->fooみたいなアクセスが一番考えられる事です。 shino0526yさん、変数indexの値のエラー確認のルーチンを教えてくれませんか? 変数の値なんて,ブレークポイント作...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: マップ表示プログラムのデバック中に例外がスローされた。
返信数: 15
閲覧数: 12029

Re: マップ表示プログラムのデバック中に例外がスローされた。

アクションゲームを制作する一環でマップ表示プログラムを作ってみたのですが、以下のような例外がスローされて、実行できません。 例外がスローされている以上,実行されていると思いますが。 0x0067C8DA で例外がスローされました (スタアド.exe 内): 0xC0000005: 場所 0x00000008 の読み取り中にアクセス違反が発生しました 0xC0000005は有効でないメモリへのアクセスです (元々はハードウェア例外)。 0x00000008へのアクセスだから,int型の配列の2番目の要素へのアクセスなどが発生しているのだと思います。 アクセス時の変数やメンバ変数の値,場合によっ...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: C2079エラーによってプログラムがコンパイルされない。
返信数: 14
閲覧数: 9555

Re: C2079エラーによってプログラムがコンパイルされない。

エラーメッセージの通りです。

Main.hの4行目にCPlayerクラスの宣言はありますが,7行目で定義を必要とするまでに,CPlayerクラスの定義がMain.h内には存在しません。
Main.hを利用する側でMain.hより前にCPlayerクラスの定義をしておけばコンパイル可能ですが,通常はMain.h内で定義がなされるようにします。
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: LNK2005エラーが出た。
返信数: 5
閲覧数: 3172

Re: LNK2005エラーが出た。

エラーになった関数を定義していないか,定義されているファイルをリンクしていないのでしょう。
CFmfMapクラスの実装のある.cppファイルはプロジェクトに追加されていますか。
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: C++のコンパイルとリンクに関するディレクトリの指定
返信数: 2
閲覧数: 2056

Re: C++のコンパイルとリンクに関するディレクトリの指定

visual studio VC++のソーススコードで[インクルード ディレクトリ]と[ライブラリ ディレクトリ]を指定することは可能でそうか。 できません。 ただし, プロパティシート を使えばオプションを.xmlファイルで管理できます。 # include 文で hファイルのフルパス指定がいやですので。 いやなので,というのはあまり理由になっておらず,フルパスで書いた方が面倒ごとは少ないと思いますが。 他に,例えばライブラリをnuget化するなどしてしまうのも方法ですが,結局プロパティシートが必要になります。 see) C++プロジェクトでNuGetを使ってみようよ!(Vol. 2:パッ...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: 複数のコードに分けてコンパイルしようとしたら、C2512エラーが出た。
返信数: 5
閲覧数: 3748

Re: 複数のコードに分けてコンパイルしようとしたら、C2512エラーが出た。

既に書いた通り,問題点はデフォルトコンストラクターがないのにデフォルトコンストラクターを必要とする記述をしていることです。
これをどうすればいいのかは,どうしたいのかに依存するので状況に依るとしか書けません。
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: 複数のコードに分けてコンパイルしようとしたら、C2512エラーが出た。
返信数: 5
閲覧数: 3748

Re: 複数のコードに分けてコンパイルしようとしたら、C2512エラーが出た。

どうもkeito940です。Platinumというマップエディターを使って、アクションゲームのためにマップを読み出すプログラムを作ってそれをコンパイルしようとしたところ、main.cppで何故か「C2512 'CCharMoveAndMap': クラス、構造体、共用体に既定のコンストラクターがありません。」と出ました。 コンパイルエラーであれば,ファイル名と同時に行数も書かれているはずですが。 ざっと見た感じでの問題となりそうな箇所は, Main.cpp #include "Main.h" #include "Player.h" #include "CharMove.h" int Time;...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: C++でUTF-8
返信数: 3
閲覧数: 7248

Re: C++でUTF-8

VS2017CommunityでUTF-8の文字列を変数に入れ、中身を確認したところ、 <文字列中に無効な文字があります> となってしまい、文字として認識してくれません。 ソースコード自体の文字コードは何ですか。 Visual C++のコンパイラは,Windowsのコードページの文字コードとソースコードの文字コードが一致するのであればそのままコンパイルできますが, そうでないのであれば, /source-charset のオプションを追加しておく必要があります。 なお,このコンパイラオプションはIDEサポートがないので,上記のリンク先にあるように,直接[追加のオプション]として記述する必要が...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: C# デリゲートについて
返信数: 2
閲覧数: 1983

Re: C# デリゲートについて

単純に,対応するメソッドの形が,
  • 前者はint型の引数を持ち,値を返さないメソッド
  • 後者は引数を持たず,値を返さないメソッド
だからです。それにあわせて,
  • 前者のデリゲートで呼び出されるメソッドCSharpTraning.Program.Aはint型の引数を持ち,値を返さない
  • 後者のデリゲートで呼び出されるメソッドPerson.ShowNameは引数を持たず,値を返さない
となっています。
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: コンパイラの警告 (レベル 1) C4819---MSの対処法は嘘 (公開日: 2016年7月)
返信数: 4
閲覧数: 6242

Re: コンパイラの警告 (レベル 1) C4819---MSの対処法は嘘 (公開日: 2016年7月)

Visual Studio 15,つまりVisual Studio 2017では,確かにVisual Studio 2015までには存在した[保存オプションの詳細設定]メニューがなくなっていますね。
ただ,どちらのバージョンでも[名前を付けてファイルを保存]ダイアログの,[保存]ボタンの横の下向き三角を押すと,
[エンコード付きで保存]のメニューが出てきて,これを選択すると文字コード及び改行コードを選択する事が出来ます。
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: GOTO文の使い道について
返信数: 9
閲覧数: 4831

Re: GOTO文の使い道について

 何らかの理由で処理を飛ばしたい時に有効ということでしょうか?  ですが見づらくなるので、メモリ破棄には別の方法を使う方が良さそうですね。 デストラクタの実行に相当するようなことをまとめて行うために,リソース解放処理を関数中にまとめておいて,returnの代わりにそこにgotoでジャンプさせて解放処理を行う,というものだと思います。 一般的なgotoの使い方の一つですね。 e.g.) MEM12-C. リソースの使用および解放の最中に発生するエラーが原因で関数を終了する場合に、Goto 連鎖の使用を検討する - JPCERT.CC あとは,多重ループから一気に外に出るために使うくらいが現在利...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: マルチスレッドが実行する関数の引数について
返信数: 1
閲覧数: 1336

Re: マルチスレッドが実行する関数の引数について

  • 関数の引数
  • ローカル変数
であるオブジェクトは,そのオブジェクトへのポインタを別のスレッドに渡すなどの方法で他のスレッドに知らせない限り,実行スレッドからのみアクセスできます。
thread_localとは意味合いが異なってしまいますが,他のスレッドと切り離されているという点においては同じ扱いになります。

ただ,当然ですが「『関数の引数であるポインタオブジェクト』が指し示すオブジェクト」は,他のスレッドと共有している可能性があります。
# これもthread_localと同じ。
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: ソースコードを分離したらエラーを吐き出した。
返信数: 3
閲覧数: 2321

Re: ソースコードを分離したらエラーを吐き出した。

keito940 さんが書きました:move.cpp

コード:

extern int CameraX = 0;
extern int CameraY = 0;
ここが問題です。
externと初期化子 (や関数定義) が両方ある場合,宣言では無く定義になります。
分割する場合に,externを付ける場合は初期化子 (「=」以降) を付けてはいけません。

ref) ISO/IEC 14882:2011 / 3.1 Declarations and definitions / ¶2
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: javaでフィールド領域で処理を実装する方法ってありますか?
返信数: 8
閲覧数: 3567

Re: javaでフィールド領域で処理を実装する方法ってありますか?

//メソッド領域 仕様書上存在しないと思われるフィールド領域という言葉を使っておられる上,メソッド領域なる言葉も仕様書上該当しそうな言葉を見付けられないのですが,どこに書いてあるのでしょうか。 Mathさんの個人の意見はいりません。docs.oracle.comで提供されているJava Specificationの,HTMLの該当箇所のFragment付きのURIを提供してください。 なお,フィールド領域という言葉に私がこだわる理由は,単純に,大元の質問に書かれているような,式文をブロックの外に書く方法が存在しないものの, フィールド領域という言葉が何を指すのかがわかれば,別の理由で書かれて...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: javaでフィールド領域で処理を実装する方法ってありますか?
返信数: 8
閲覧数: 3567

Re: javaでフィールド領域で処理を実装する方法ってありますか?

フィールド領域とは何でしょうか。
Java言語仕様を参照してみましたが,それらしいものは無いようです。
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: インターフェース、抽象クラスのC#との違い
返信数: 4
閲覧数: 2399

Re: インターフェース、抽象クラスのC#との違い

デリゲートは根本的な言語仕様の問題ですし,今回の話題から外れるので元々除外しています。
JavaからC#への変換で問題になりそうな匿名クラスも,根本的な言語仕様の問題で今回の話題からも外れるので除外しています。

で,今回のnewは,
new 修飾子 (MSDN)
これのことです。
オフトピック
C# メソッド newでGoogle検索すればすぐに出てくるので,ちゃんと調べましょう。
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: インターフェース、抽象クラスのC#との違い
返信数: 4
閲覧数: 2399

Re: インターフェース、抽象クラスのC#との違い

インターフェース、継承、抽象クラスに関してルールとしてC#とjavaで違いはありますか? 記述方法の違いを除いた場合において, Javaのinterfaceはpublic static finalなフィールドを持てるがC#はフィールドを一切持てない Javaのinterfaceはメソッドのデフォルト実装を持てるがC#は持てない Javaの@Overrideは任意だがC#のoverrideは必須 C#のメソッドに付けるnewに相当するものはJavaには存在しない C#の明示的なインターフェースメソッドの実装に相当するものはJavaには存在しない あたりが大きな違いかな,と思います。 変換プログ...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: OSに依存しないEthernet通信アプリケーション(C言語)
返信数: 6
閲覧数: 3904

Re: OSに依存しないEthernet通信アプリケーション(C言語)

Boost.Asioのような,OS依存を内部に隠しているライブラリを使えば可能です。

そもそも,現時点において標準のC/C++にTCP/IPを直接扱うライブラリが存在しません。
このため,TCP/IPを扱う方法は処理系に依存してしまいます。
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: "struct" と "class"とは何が違うのでしょうか
返信数: 3
閲覧数: 1797

Re: "struct" と "class"とは何が違うのでしょうか

  • structはデフォルトの可視性がpublicなクラス
  • classはデフォルトの可視性がprivateなクラス
です。
それ以外の違いはありません。
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: C++のRxにおけるダブルクリックの実装
返信数: 5
閲覧数: 4198

Re: C++のRxにおけるダブルクリックの実装

とりあえず、bufferメソッドを使用して2個ずつイベントを通知する実装としている為、 「2回クリックしたとき」しか表現できていない状態です。 ここに、制限時間を定義するにはどうしたらよいでしょうか。 前回の時間との差がある程度より小さければダブルクリックになるのですから,単純に前回との差を調べればよいことになります。 面白そうなので,コードを書いてみました。 // プログラムの先頭に, #define NOMINMAXを書いておくこと。<windows.h>のminマクロのために,minの呼び出しでエラーになる。 auto doubleClickStream = clickStream ....
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: 【C#】Bitmapの描画について
返信数: 5
閲覧数: 2681

Re: 【C#】Bitmapの描画について

Bitmap上に4角形のオブジェクトを配置するマップエディタを作成しているのですが、 配置したオブジェクトの大きさや座標をNumericUpDownで連続で変更すると例外が発生します。 再描画の度にBitmapを新規作成していることが原因のようなので、 Bitmapを新規作成しないor描画間隔を少なくする といった方法は思いつくのですが、 どうすれば実装できるかがわかりません。どなたかアドバイスをお願いいたします。 例外のメッセージには何と書いてあったのでしょうか。 ArgumentException自体は,例えばnew Bitmap(0, 100)のような値を指定した場合に発生します。 た...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: visualc#のプログラムについて。
返信数: 3
閲覧数: 1659

Re: visualc#のプログラムについて。

visualc#のコンソールアプリケーションなのですが、コンソールアプリケーションを選んだあと一番上にusing System;だけ表示する方法ってあるでしょうか?通常試してみるとusing System;usingSystem.Collections. using System.Ling; usingSystem.Text; using System/Threading.Tasks;となってしまいます。 クラスのテンプレートがそのようになっているので,新しくテンプレートを用意しない限り無理です。 # LinqがあるのでSystem.CollectionsではなくSystem.Collect...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: mp4の再生
返信数: 7
閲覧数: 3252

Re: mp4の再生

あまりMP4ファイル形式について詳しくないのですが…… MP3ファイルが特殊な形式なので,あまりMP3ファイルを前提に考えるのはやめた方がよいのですが……。 MP3ファイルは,Mpeg-1 audioのチャンクをそのまま保存した形式です。 後付けで,ID3tagやLame tagというものができていますが,基本的には「生データのみ」のものです。 それに対して,通常のマルチメディアフォーマットは,コンテナであり,「データに関する情報」と「データ」を分離して保存しています。 一般的にPCMのみに使われているWAVEファイルも,RIFFコンテナでfmt チャンクに情報を入れればMpeg-1 aud...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: javafxにて別のAnchorPaneの操作
返信数: 15
閲覧数: 4450

Re: javafxにて別のAnchorPaneの操作

最初の回答にも書いた通り,JavaFXについては詳しくありませんが,
ビブロ さんが書きました:ここまではこの書き方で合っているでしょうか?
コードの仕組みとしては合っていると思います。

JavaFXの世界における標準的な書き方かどうかはわかりません。
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: javafxにて別のAnchorPaneの操作
返信数: 15
閲覧数: 4450

Re: javafxにて別のAnchorPaneの操作

mainCon#melodycreatewindowの中でcreatemelodyconクラスのインスタンスに対して,自身のインスタンスを渡しておいて createmelodyconクラスのインスタンスに対して,自身のインスタンスを渡すという処理についてなのですが、文章をそのまま起こすと mainConクラスの非staticメソッドの中なのですから,自身のインスタンスはthisです。 newしたものは自身とは異なるインスタンスです。 また,createmelodyconクラスのインスタンスも単純にnewすればよい,というものではないです。 例えば,FXMLLoader#getControll...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: javafxにて別のAnchorPaneの操作
返信数: 15
閲覧数: 4450

Re: javafxにて別のAnchorPaneの操作

JavaFXには詳しくないですが……。 Caused by: java.lang.NullPointerException at application.SampleController.test(MainScreen.java:18) ←textarea.appendText(melody);の所 at application.SampleController2.action(createmelodycon.java:14) ←con.test(textarea.getText());の所 ... 60 more なので,このあたりを探ると,そもそも, public void sendmel...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: 三次元ヤング図形 数え上げ
返信数: 20
閲覧数: 4755

Re: 三次元ヤング図形 数え上げ

https://iwiz-chie.c.yimg.jp/im_siggqlTdVNPl6suKf8zox10pbQ---x320-y320-exp5m-n1/d/iwiz-chie/que-10169092270 ] この一番左上,[5 1/1]の例について, a[1][1] = 5 a[1][2] = 1 a[2][1] = 1 だと思うのですが,a[1][2] > a[1][3] ≧ 1を満たしません。 任意のi, jに対して,a [j] ≧ 1かつa [j] > a [j + 1]だから,a [j] > [j + 1] ≧ 1。 i = 1, j = 2とすると,上記の式が出る。 これ...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: 三次元ヤング図形 数え上げ
返信数: 20
閲覧数: 4755

Re: 三次元ヤング図形 数え上げ

iとjの範囲に制限はないのでしょうか。
iとjに範囲があればa[j]は有限の値におさめる事ができますが,iとjに範囲がなければ,a[j]は無限を取り扱って処理しなければならなくなります。
# a[j]は整数と想定すると正の無限大に発散ですが。

問題文自体について(特に数式部分),もう少し正確に記述してみてはいかがでしょうか。
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: c++における自己参照的なクラスに関して
返信数: 2
閲覧数: 1980

Re: c++における自己参照的なクラスに関して

しかし、このDimClassをこう変更するとコンパイルエラーになります。 確かにこのクラスはポインタの自己参照?を行ってはいるのですが、一定の値で止まるようにはなっています。 c++において、このようなことは不可能なのでしょうか。 メンバ変数で使われているため,newするかどうかに関わらずDimClass<T*>はインスタンス化されます。 このため,コンパイラはDimClass<int>からDimClass<int *>, DimClass<int **>……と無限に作ろうとして,当然ながら限界になってエラーになります。 このような場合は,テンプレートの部分特殊化を使うのが一般的かと思います...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: C#の疑問がいっぱい
返信数: 41
閲覧数: 13750

Re: C#の疑問がいっぱい

Timer t = new Timer(); たったこの一行で エラー 1 'System.Threading.Timer' に、引数を 0 個指定できるコンストラクターがありません。 が出てきました。何故でしょう? 書いてあるとおり, System.Threading.Timerクラスのコンストラクタ には,引数が0個のものがないからです。 少なくとも,時間が経った時に呼ばれるコールバックデリゲートが引数として必要です。 TimerクラスってC#2つありますよね? どっち使ったらいいですか? Timerクラスは2つではないです……。 とりあえずですが,基本的には WinFormsであれば,...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: C#の疑問がいっぱい
返信数: 41
閲覧数: 13750

Re: C#の疑問がいっぱい

・入出力がStreamでしかできないAPIってDataobjectの事ですか? いいえ。 世の中にはバイナリデータを処理する場合に,引数としてbyte[]やIEnumerable<byte>などを受け付けず,Streamしか引数としてとらないAPIが存在します。 別途得られたbyte[]データをそのようなAPIに渡す時などに,MemoryStreamでラップします。 e.g.) XmlReader.Create メソッド そもそも,Dataobjectというクラス・メソッド・プロパティ等は.NET Frameworkクラスライブラリには存在しません。 System.Windows.Forms...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: C#の疑問がいっぱい
返信数: 41
閲覧数: 13750

Re: C#の疑問がいっぱい

①これは、都合上の問題なんですが、コマンドプロンプトが実行時すぐ閉じてしまいますよね?これを閉じないようにする方法を教えて下さい。 for(i=1; i<=1000000 i++){}を行の最後に入れるみたいな力業はなしでお願いします。待機してるみたいな感じのコードを追加できませんか? リリース版での話であれば,コマンドプロンプトを起動して実行することで結果が残ります。 エクスプローラーからの起動で終了するのは,上記を優先した結果の仕様としか言い様がないです。 デバッグ版をVisual Studioから起動した場合の話であれば,metaphorさんの書かれているようなConsoleの読み込み...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: Windowsハンドル取得して操作する方法について[C#]
返信数: 23
閲覧数: 25610

Re: Windowsハンドル取得して操作する方法について[C#]

>自分でプログラム書いて作ったキャンパスなら普通に描いて保存もできますよね。 お絵かきソフトの自作は無理ってことですか? 保存するデータが,「内部で保持しているデータ」であれば保存できますが,「キャンバス」という,通常はウィンドウに表示するWidgetの話になっているので,「できない」と書いています。 あくまで保存するのは内部で持っているデータであって,描画された結果ではない,というのは理解されていますでしょうか。 もし他のアプリを操作できないのであるならばvar process in Process.GetProcessesByName("mspaint")このような記述を使う意味はあるん...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: Windowsハンドル取得して操作する方法について[C#]
返信数: 23
閲覧数: 25610

Re: Windowsハンドル取得して操作する方法について[C#]

でもフリーソフトで画像やテキストを他アプリに転送したりするものはたくさん存在しますが、技術的に可能だからではないですか? 一例を挙げてもらえますか。 通常はクリップボードへデータを渡しているだけだと思いますが。 また,特定のソフトウェアに対してデータを渡す,というものはあり得ます。 Microsoft Officeの製品群などは,COMと呼ばれる外部インターフェースを持つため,COMとOfficeの規約に従った方法であれば外部から制御が可能です。 >アプリがそういう手段の提供をしていない場合 これがよく分かりません、これは操作されないためにするセキュリティ的な処理ということでしょうか? それ...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: Windowsハンドル取得して操作する方法について[C#]
返信数: 23
閲覧数: 25610

Re: Windowsハンドル取得して操作する方法について[C#]

他のアプリケーションを外部から操作したいのであれば,最低でもWin32 APIの仕組み程度は知っておいた方がよいかと。 描画に関して言えば,基本的にはGetDC等でウィンドウハンドルからデバイスコンテキストを得て描画するのではなく, WM_PAINTメッセージがウィンドウに送られてきたときにBeginPaintして得られたデバイスコンテキストに対して描画する,という仕組みが普通です。 WinFormsでも,直接コントロールに対してCreateGraphicsするのではなく,OnPaintメソッドのオーバーライドまたはPaintイベントで描画するのと同じです。 FromHwndメソッドを使っての...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: Windowsハンドル取得して操作する方法について[C#]
返信数: 23
閲覧数: 25610

Re: Windowsハンドル取得して操作する方法について[C#]

http://wisdom.sakura.ne.jp/system/winapi/win32/win22.html ここに点を描画するwin32apiのプログラムを見つけました。 C#からこのsetpixelを使えば、ペイントに描画とか可能ですか? この方法ということは,単に描画できればよいのでしょうか。 電卓の方が「自動実行」,つまり電卓の機能を使って計算させるのが目的のようだったので,ペイントのデータとして描画したいのかと思ったのですが。 単純に,描画するだけであれば, using System; using System.Diagnostics; using System.Drawin...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: Windowsハンドル取得して操作する方法について[C#]
返信数: 23
閲覧数: 25610

Re: Windowsハンドル取得して操作する方法について[C#]

C#で実行中のアプリケーションのWindowsハンドルを取得して、そのアプリケーションのフォームに文字などを挿入するプログラムを作りたいと思っています。 基本的に,他のプロセスに対して何かを行うというのは,そのプロセスが手段を用意してくれていない限り難しいと考えて下さい。 ①電卓(windowsでcalcで開くアプリ)で1+1=2を自動実行 calc.exeのウィンドウに対して SendMessage を使ってWM_KEYDOWN, WM_KEYUP等を送信してキー動作をエミュレートする calc.exeのウィンドウを前面に出して, SendKeys.Send などを使ってキーストロークを送...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: WPFとデータバインディング
返信数: 29
閲覧数: 12180

Re: WPFとデータバインディング

根本的な勘違いがありそうですが……。 XAMLは,本質的にオブジェクトのシリアライズ表現の一つです。 WPFだけでなくWF (Windows Workflow Foundation) などでも用いられた技術です。 # 最近WFがどうなっているか知らない&元々WFはXAMLでなくてもよかったので,とりあえず過去形の表現。 自分の認識としてWPFはGUI formのデザインがエンドユーザが「テキスト(XAML)」編集で自由に変更できる(開発環境要らない)というアイディアであると思っていました。 リソースにはなるものの,基本的にはそのような修正はできません。 ただし,XAML自体を読み込むために X...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: fprintfのアサーションチェック
返信数: 6
閲覧数: 2998

Re: fprintfのアサーションチェック

permission deinedは権限がない事を示しています。 今回の場合だと,ファイルを書き込む権限がないのでしょう。 出力先がカレントディレクトリになっていますが,書き込む時点でのカレントディレクトリは書き込み権限がちゃんとありますか。 カレントディレクトリは実行ファイルのあるディレクトリのことではないことに注意が必要です。 # ショートカットを作って作業フォルダを指定すれば,そこがカレントディレクトリの初期値になる。 対処法は,権限のあるところを外部から指定するなどして,書き込むか,エラーが起きたらユーザーに別の場所を指定してもらうか,といった方法になるかと思います。 ユーザーのDoc...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: fprintfのアサーションチェック
返信数: 6
閲覧数: 2998

Re: fprintfのアサーションチェック

エラー文よりアサーションチェックが入っていないためと考えたので アサーションチェックのところにif (fpw == NULL) {exit (1);}を 挿入しデバッグをしました。 すると今度はif文の判定で処理が落ちるようになりました。 これはアサーションチェックを無事通過するにはどのようにすればよいでしょうか? 呼び出しの間違いがassertによって検知されたために"Debug Assertion Failed!"というダイアログが表示されたのであって,このダイアログを消す事だけを目的にif文を書いても意味がありません。 今回の場合,おそらくはfopenに失敗した結果NULLが返ったにも...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: WPFとデータバインディング
返信数: 29
閲覧数: 12180

Re: WPFとデータバインディング

その中の「x:Key="colorConverter"」の存在意味は分かりません。 リソースとしてBindingTest.ColorConverterを利用するために記述します。 おそらく,後の方で Background="{binding BackColor, Mode=OneWay, Converter={StaticResource colorConverter}}" のような使い方をしているかと思います。 ここで,Binding.ConverterとしてBindingTest.ColorConverterを使うために,Resource内でクラスにx:Keyを付与しています。 x:Ke...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: C# System.Deviceがない
返信数: 15
閲覧数: 5560

Re: C# System.Deviceがない

ざっと見たところだと, WinFormsのGUIスレッドで実行を行いたいのだから,DispatcherではなくControlのInvokeまたはBeginInvokeを使う。 今回はFormの内部だからthis.Invokeまたは単にInvokeでよい。 Delegateはそれだけで1つのオブジェクト。引数には,そのまま渡さないと意味がない。 md(textBox1, e)のようにしたら,メソッドを呼び出してしまうし,System.Delegateを返さないと辻褄が合わなくなってしまう。 使った事の無い.NET Frameworkのクラス・メンバーを使うのであれば,まずはMSDNを参照。 Di...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: 初歩的なポインタの間接代入だとはおもうんですが、、、、
返信数: 18
閲覧数: 5545

Re: 初歩的なポインタの間接代入だとはおもうんですが、、、、

問1の部分ですが j = *p; により pの値が5になっていることからj = 2からj = 5になるのではないかと思っています。 なぜjの値が変化しないのでしょうか? jには,*pの値が代入されるのであって,pへの参照が代入されるのではありません。 つまり,j = *p;を実行した時点での*pでの値である2がjに代入されます。 その後,iの値 (=*p, *qの値) が5に変化しても,jの値は*pとは無関係なので変化しません。 根本的に,プログラムにバグがあるような場合を除いて,オブジェクトの値はそのオブジェクトを変更しない限り変更されません。 今回のプログラムでは,名前付きのi, j, ...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: double型との比較
返信数: 5
閲覧数: 5359

Re: double型との比較

うーん,単純に,windがa以上b未満であることをループで調べればよいだけで,もともと0.1ずつ足して比較していく,という方針が間違いなのではないでしょうか。

コード:

double a, b, wind[N]; // 既知
int count = 0;
for (int i = 0; i < sizeof(wind) / sizeof(wind[0]); ++i){
    if (a <= wind[i] && wind[i] < b) ++count;
}
たぶん,本来こういうことをしたかったのではないかと。
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: XNAについて
返信数: 4
閲覧数: 3463

Re: XNAについて

評価は……使っていないのでなんとも。
とりあえず,文字出すの面倒とかXBLIG運営(主に日本の)がダメだとか,そういう評価はあるにしろ,実際の所のゲーム制作としての評価はあまり聞いていないような……。

後継はMonoGameになるのでしょうけれども,現実的にはUnityとかで組み直す,かと。
Xbox系での実行という点では,Xbox OneはUWP対応なので,UWPで対象に含めれば実行可能なようです。
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: C初心者です
返信数: 3
閲覧数: 1929

Re: C初心者です

何をもって「簡潔」とするのですか。

現在のものでも十分に簡潔だと思いますが。
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: DxLibのDrawPixelでリサージュ図形を描きたいです。
返信数: 7
閲覧数: 2704

Re: DxLibのDrawPixelでリサージュ図形を描きたいです。

点の数をもっと増やしてより綺麗な図形を作りたいのですが、どうかアドバイスお願いします。 そうしたいのであれば,その通りにやれば良いと思うのですが……。 点の数は,結局の所ループの回数で決定されます。なので, for(i=1;i<360;i++){ y=(int)(200*sin((double)i*3.14159/180*a)); x=(int)(200*sin((double)i*3.14159/180*b)); DrawPixel(x+300,250-y,cr); } このループの回数を増やせばよいです。 ただし,iはループ回数だけでなく角度にも使われているので,その分の補正が必要になり...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: 二次元配列のポインタを他のソースファイルで書き換えたい
返信数: 13
閲覧数: 5156

Re: 二次元配列のポインタを他のソースファイルで書き換えたい

根本的な所で,「配列はポインタでは無い」ことに注意すべきかと。 代入で しかし,以下のような代入は"aがポインタ定数"なるものらしくできないそうなので, といったエラーが出たようですが,文法上,特定の場合を除いて配列型のオブジェクトは配列の先頭要素へのポインタという値になるため,このようなエラーが出たのだと思います。 値というのは,つまりは1とかと同じなので,Cにおいて代入はできません。 配列は無理矢理図示すると, +--a : int[3]---+ |+-a[0] : int -+| || 0 || |+-------------+| |+-a[1] : int -+| || 10 || |...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: C言語でローグライクゲームを作ることは出来ますか?
返信数: 4
閲覧数: 4409

Re: C言語でローグライクゲームを作ることは出来ますか?

作れるかどうかですが,実例としてNetHackはCで作られています。
# ソースコードをgitリポジトリからcloneして確認。

他言語との比較は,単純に慣れや実行可能な範囲,サイズ等の問題なので人と規模によるとしか言い様がないかと。
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: DxLibでゲームの実行EXEとは別に設定EXEを用意したい
返信数: 15
閲覧数: 6808

Re: DxLibでゲームの実行EXEとは別に設定EXEを用意したい

普通に別のプログラムを作るだけだと思いますが……。
設定したい部分をファイルにして,ゲーム本体と設定アプリが同一のファイルを読み書きするようにすればよいです。
別に,2つの実行ファイルの間に依存関係を作るわけでも無いです。
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: C言語のpthread_create(...)関数の使い放題
返信数: 15
閲覧数: 8459

Re: C言語のpthread_create(...)関数の使い放題

やはりthreadを多量発行するには thread poolを利用するのは常識みたいですね。 windowsが提供しているthread poolのAPIは悪くないが、将来LINUXに移植する可能性もありますので、 ちょっと欲張りな要望ですみませんが、 ソースコードのレベルで見かけ上LINUXでもwindowでも同じようなやり方はないでしょうか。 先にも書きましたが,現時点では標準機能としてthread poolは存在しないので,真似るしか無いようです。 実際に実装した事が無いので検索してみましたが,Boost.Asioを使って実装する,<thread>を駆使する,などが見つかりました。 ただ...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: グローバルキーフックについて
返信数: 6
閲覧数: 3385

Re: グローバルキーフックについて

フックまわりは詳しくないですが……。 CallNextHookExを呼べば,それはそのままシステム既定の処理まで辿り着くのは想像が付きます。 で,MSDNを読むと,処理をして後続の処理を断ちたい場合は非0を返せ,とあります。 If the hook procedure processed the message, it may return a nonzero value to prevent the system from passing the message to the rest of the hook chain or the target window procedure. なので...
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: 課題で*を使って△を表示.....
返信数: 6
閲覧数: 3661

Re: 課題で*を使って△を表示.....

ネバー さんが書きました:出力画面の真ん中って意味です......。
標準出力がディスプレイに繋がっていると仮定しても,表示可能な幅や高さを知る方法は標準規格には存在しません。
特定の環境用,という前提があれば,何らかの方法で幅や高さを知ることができるかもしれませんが。

まずは,課題で言う「真ん中」が本当に「出力画面の真ん中」という意味なのかは確認した方がよいと思います。
もしかしたら,幅や高さに何らかの仮定がなされているかもしれませんし。
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: 非同期処理の使い方 (fork from C言語のpthread_create(...)関数の使い放題)
返信数: 1
閲覧数: 2153

Re: 非同期処理の使い方 (fork from C言語のpthread_create(...)関数の使い放題)

基本的に,UIスレッドで時間のかかる処理は行わない,というのが大原則です。 ・時間のかかる処理(シミュレーション、レンダリング等)のスループットを上げる データ並列であれば,fork-join系の処理になります。 .NETだとPLINQが使えるパターンでしょうか。 ・多少時間のかかる処理(ファイルロード、デバイス待ち等)を行うときにGUIが止まらないようにする デバイスへのI/Oに関わる時間は,非同期I/Oと終了時のコールバック (IO完了ポート等) を利用します。 この場合,スレッドやスレッドプールを利用することは普通しません。 まぁ,旧来のselectを使う場合はスレッドを1つ専有しますが。
by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: 非同期処理の使い方 (fork from C言語のpthread_create(...)関数の使い放題)
返信数: 1
閲覧数: 2153

非同期処理の使い方 (fork from C言語のpthread_create(...)関数の使い放題)

元トピック で明らかに主題からずれた話がでてきたので,新たにトピックを立てます。 まず,いままでの流れの引用。 Windowsでマルチスレッドをするのであれば、下記のものがおすすめです。この掲示板で質問してもすぐ答えが返ってくると思います。 .NET Framework -> BackgroundWorkerクラス Windows SDK -> CreateThread関数 [hr] 横からですみませんが、なぜ.NetではBackgroundWorkerを押しているのか理由を聞いてもいいですか? 個人的には多少の何かしらの犠牲があったとしてもasync/awaitを使ったTaskのほうが読み...

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