検索結果 108 件

by inemaru
6年前
フォーラム: C言語何でも質問掲示板
トピック: STL文字列の変換について
返信数: 5
閲覧数: 3587

Re: STL文字列の変換について

as_string は、メソッドで、戻り値が wstring 型 wstring 型は、c_str メソッドを持ちます。 ※ wstring 型を扱う場合は、ロケールの設定が必要な場合があるので注意が必要です。   適宜調べてください。 #include <iostream> #include <string> struct Foo { // string 型 として取得 std::wstring as_string() const { return L"test"; } }; int main() { Foo hoge; std::wcout << hoge.as_string().c_st...
by inemaru
6年前
フォーラム: C言語何でも質問掲示板
トピック: STL文字列の変換について
返信数: 5
閲覧数: 3587

Re: STL文字列の変換について

手元で確認していませんが、
その string 型には、c_str() メソッドはありませんか?
ワイド文字でない限りは、対応できると思います。

コード:

printfDx("%s", json["title"].as_string().c_str());  // *エラー箇所。STL文字列を変換する必要がある?
by inemaru
6年前
フォーラム: C言語何でも質問掲示板
トピック: 名前空間について
返信数: 11
閲覧数: 5623

Re: 名前空間について

かずま さんが書きました: 同様に、セミコロンのつかない [](){} がラムダ式です。
次に、最小のラムダ式は []{} です。
ご指摘ありがとうございます。
確かに、最小のラムダ式は、

コード:

[]{}
です。

混乱させてしまって申し訳ありません。
by inemaru
6年前
フォーラム: C言語何でも質問掲示板
トピック: 名前空間について
返信数: 11
閲覧数: 5623

Re: 名前空間について

☆1つ目の質問 名前空間::型 関数 のような並びになっているのでしょうか? かなり雑に説明すると、task<void> を型だと考えれば良いです。 簡略化すると下記のような構成になっています。 namespace pplx { template <class Ty> class task {/* 略 */}; template<> class task<void> {/* 略 */}; } pplx::task<void> Get() { pplx::task<void> inst; return inst; } ☆2つ目の質問 関数([])というように、引数”[]”が渡されているように見...
by inemaru
6年前
フォーラム: C言語何でも質問掲示板
トピック: 64bit環境で32bitのプログラムが動くワケ
返信数: 2
閲覧数: 1486

Re: 64bit環境で32bitのプログラムが動くワケ

少なくとも、
Windows環境では、エミュレートされていると考えて良いと思います。

仕組みに関しては、詳しくないのでWiki参照でお願いします。
WOW64 - Wikipedia
by inemaru
6年前
フォーラム: C言語何でも質問掲示板
トピック: dxライブラリ 時間差表示について
返信数: 4
閲覧数: 2921

Re: dxライブラリ 時間差表示について

オフトピック
質問内容と関係ないのでオフトピックですが、
管理人さんのサンプルコードでemplace_backメソッドの使い方が良くないように思いました。
動作に関係ないですが、気になったので・・・
攻撃の意図等は、ないです。お気を悪くさせてしまったら、本当にすみません。

折角、コンストラクタ引数でintが渡るようになっているので、
一時変数は、不要だと思います。

コード:

list.emplace_back(TimeStump(index++));

コード:

list.emplace_back(index++);
by inemaru
6年前
フォーラム: C言語何でも質問掲示板
トピック: WSH JScript から C#
返信数: 1
閲覧数: 1652

Re: WSH JScript から C#

とりあえず、解決つけます。 全く、レスが付かないこともあるんですね。orz コンソールのメッセージをサブクラス化する等、色々試しましたが、 うまく動作しなかったので、非表示で妥協しました。 @if(0)==(0) echo off title %~n0 cscript.exe //nologo //E:JScript "%~f0" %* if not %errorlevel% == 0 echo;&pause goto:EOF @end function GetCSharpSrc() { return (function () {/* using System; using System.Di...
by inemaru
6年前
フォーラム: C言語何でも質問掲示板
トピック: WSH JScript から C#
返信数: 1
閲覧数: 1652

WSH JScript から C#

お世話になります。 WSH JScript から C# を実行するために バッチを作成しています。 (↑ここは、前提条件なので崩せません。) 以下のバッチを実行した際に表示される、 コマンドプロンプトのウィンドウが閉じられないようにする 良い方法は無いでしょうか? アイデア・実装 などアドバイスお願いします。 @if(0)==(0) echo off title %~n0 cscript.exe //nologo //E:JScript "%~f0" %* if not %errorlevel% == 0 echo;&pause goto:EOF @end function GetCSharp...
by inemaru
6年前
フォーラム: C言語何でも質問掲示板
トピック: 「龍神録2プログラミングの館」を開設しました [雑談]
返信数: 16
閲覧数: 11768

Re: 「龍神録2プログラミングの館」を開設しました [雑談]

Dixq (管理人)さま

管理人さんの考えとしては、
  • (C++で一般的でないものの)規約違反をしているわけでないし、
    MSDNの命名規則を使用しても得られる恩恵は少ない
  • 気になるならリファクタできる
ということと把握しました。
お手数おかけしました。
by inemaru
6年前
フォーラム: C言語何でも質問掲示板
トピック: 「龍神録2プログラミングの館」を開設しました [雑談]
返信数: 16
閲覧数: 11768

Re: 「龍神録2プログラミングの館」を開設しました [雑談]

とは言え、C++ではメンバ変数にアンダースコアを付けることが一般的ではないこと承知しています。 ただ私はJAVAを書いている時間の方が圧倒的に長いのでJAVAの慣習に慣れてしまい、私がかきやすいのでこの表記を使っています。 言語仕様上間違いではないので、JAVAの慣習をそのまま流用していますが、気持ち悪ければアンダースコアをmに書き換えてもらっても構いません。 ご回答ありがとうございます。 経緯について、承知いたしました。 命名規則自体には違和感はないのですが、C++でこの規則を使用している点が気になって質問しました。 (説明足らずで、うまく伝わらなかったので、) 一応、あとで読まれる方のた...
by inemaru
6年前
フォーラム: C言語何でも質問掲示板
トピック: 「龍神録2プログラミングの館」を開設しました [雑談]
返信数: 16
閲覧数: 11768

Re: 「龍神録2プログラミングの館」を開設しました [雑談]

毎度、お世話になっております 「龍神録2プログラミングの館」開設おめでとうございます 公開しているコードに突っ込み等あれば是非お願いいたします。 早速ですが、「龍神録2プログラミングの館」の公開コードの命名規則について 素人目で申し訳ないのですが、質問です。 下記等のように、公開されているコードの変数名が、アンダースコアから始まっていることについての疑問です。 std::map<std::string, int> _map; 自分の認識として、アンダースコアから始まる変数名は、C++において推奨されない認識ですが、 こういった命名規則になっている経緯などありますでしょうか。 予約名 コードの規...
by inemaru
6年前
フォーラム: C言語何でも質問掲示板
トピック: VC++で関数呼び出し時に末尾の括弧がない場合にコンパイルエラーにしたい
返信数: 11
閲覧数: 7556

Re: VC++で関数呼び出し時に末尾の括弧がない場合にコンパイルエラーにしたい

「関数呼び出し時に末尾の括弧がない場合にコンパイルエラーにしたい」 ではなくて、 「想定外の呼び出しをエラーにする」に妥協するならば、 エラーを出すことは可能ですが、どうでしょう? #include <iostream> // 標準IO #include <utility> // std::forward class TestClass final { private: static int member; public: static int getMember() { return member; } static int getValue(int v) { return v; } sta...
by inemaru
6年前
フォーラム: C言語何でも質問掲示板
トピック: キャラを動かすってだけのクラス設計
返信数: 16
閲覧数: 7902

Re: キャラを動かすってだけのクラス設計

オフトピック
内容と逸れるのでオフトピックですが、
古くからあるゲーム設計を調べると、設計の糸口が掴めるかもしれません。
メッセージベースによるゲーム駆動
by inemaru
6年前
フォーラム: C言語何でも質問掲示板
トピック: C++ もっとシンプルに使えるシングルトンクラス
返信数: 5
閲覧数: 4381

Re: C++ もっとシンプルに使えるシングルトンクラス

結城紬さん、回答ありがとうございます!

実装例まで、あげていただき非常にわかりやすかったです。
使用側でシングルトンの記述を最小限に抑えたかったので、
ご提示いただいた方法で、十分でした。

おかげさまで、かなりシンプルに書けるようになりました。
ありがとうございました。
by inemaru
6年前
フォーラム: C言語何でも質問掲示板
トピック: C++ もっとシンプルに使えるシングルトンクラス
返信数: 5
閲覧数: 4381

Re: C++ もっとシンプルに使えるシングルトンクラス

継承を使用しているのは、
シングルトンの機能を再利用するためです。

プロジェクト内で、複数のクラスに対して
個別にシングルトンを実装していく手間を省きたい意図です。
by inemaru
6年前
フォーラム: C言語何でも質問掲示板
トピック: C++ もっとシンプルに使えるシングルトンクラス
返信数: 5
閲覧数: 4381

C++ もっとシンプルに使えるシングルトンクラス

お世話になります。 デザインパターンのシングルトンをC++で実装/使用する際 friendが出てくるのが少し煩わしいと感じて、質問することにしました。 シングルトンパターンの実装として、下記サイトのコードを使用しています。 これでほぼ完璧! C++シングルトン基底クラスの決定版! サイトの方法では、シングルトンクラスを継承してクラスを定義する際 定義するクラス内でfriendを指定する必要がありますが、 friendを書かずに実現する方法は、ないでしょうか? 書き忘れた場合でも、コンパイル時に気が付けますが 書かなくても実現できるのであれば、書かない方法を使いたいです。 宜しくお願い致します。
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: よくわかりません
返信数: 13
閲覧数: 6786

Re: よくわかりません

void型の関数を作る条件の問題なのだとしたら、引数はポインタになりそうですね。
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: utf16beの読み込み方法
返信数: 4
閲覧数: 2788

Re: utf16beの読み込み方法

標準ライブラリのcodecvt_utf16を使用する方法がありますが、どうですか? 下記の実装は、BOM付utf16BEを表示するサンプルです。 環境:VS2013/Unicodeプロジェクト #include <windows.h> #include <locale> #include <fstream> #include <string> #include <codecvt> using namespace std; std::wstring GetString_UTF16BE(const char* filePath) { wifstream ifs(filePath); if (!if...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: 共用体の使い道【雑談】
返信数: 2
閲覧数: 2225

Re: 共用体の使い道【雑談】

ありきたりな用途であれば、 同じ型が連続している構造体を、配列でアクセスしたり とか? C++だとテンプレートも使えるので、下記のようにできる。 #include <iostream> template<class Type> union Vector3 { struct { Type x; Type y; Type z; }; Type data[3]; }; int main() { using namespace std; Vector3<int> vec = {1, 2, 3}; for (auto v : vec.data){ cout << v << endl; } cout <<...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: 異なる型に変数を変換する
返信数: 8
閲覧数: 5105

Re: 異なる型に変数を変換する

intで取得された値をfloatに変換したいとなると、キャストは必要です。 でも共用体を使ったらどうやってキャストするの? 共用体を使ってキャストするとは、書いていませんよ。 言葉通りの意味です。 float 変数から読み出す float 値に意味がない時点でコードの価値を見出せないが... 価値や意味なんて、質問者さんにしかわかりませんが、 floatをintとして扱った場合の値がわかりますね。 とはいえ、質問内容的に、それはないだろ って話なのは理解しています。 質問の受け取り方は、人それぞれということで。 駄文回答をしてしまい、質問者さん申し訳ない。 以降の回答は控えます。
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: 異なる型に変数を変換する
返信数: 8
閲覧数: 5105

Re: 異なる型に変数を変換する

キャストを呼ばない という文言が誤解を招きますね。 意味的には、アドレスのキャストを指していますが、zeek さんの指摘は理にかなっています。 このようにすると呼び出し側から*float -> *int の変換は出来ない、と怒られてしまいます。 関数hogehogeの変数f,g,hを*intに変換する方法は無いのでしょうか? 先ほどの回答は、 float*をint*に変換できないということを観点に回答しました。 論点がずれていたのなら申し訳ない。 intで取得された値をfloatに変換したいとなると、キャストは必要です。 sizeof(float) と sizeof(int) が同じ保証はない...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: 異なる型に変数を変換する
返信数: 8
閲覧数: 5105

Re: 異なる型に変数を変換する

スマートかと言われると微妙ですが キャストを呼ばないで済む方法として、共用体を使用するのはどうでしょうか? void hoge(int *i, int *ii, int *iii) { *i = 0; *ii = 0; *iii = 0; } void hogehoge() { // float f, g, h; // hoge(&f, &g, &h); //ココ union{ struct{ float f, g, h; }; struct{ int seisu1, seisu2, seisu3; }; }data; hoge(&data.seisu1, &data.seisu2, &dat...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: [C++]vector<unique_ptr<T>>の初期化
返信数: 5
閲覧数: 5178

Re: [C++]vector<unique_ptr<T>>の初期化

emplace_backについてなのですが、 私の認識ではコピーしないpush_backのイメージでした。 unique_ptrはコピーができない(moveされる)のでpush_backでもいいのかな、と思っていたのですが やはりemplace_backのほうが効率がいいのでしょうか? (名前が複雑という理由だけで使わず嫌いを起こしています^^;) emplace_backは直にメモリに格納するので、 一時変数のmoveが走らない分、効率が良いと考えています。 関数の実装については、 zeek さん提示の方法で実装した方がスマートに書けますね。 #include <memory> #incl...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: [C++]vector<unique_ptr<T>>の初期化
返信数: 5
閲覧数: 5178

Re: [C++]vector<unique_ptr<T>>の初期化

ここで質問なのですが、vectorの初期化時にunique_ptrを格納することは可能でしょうか? また、もし可能であるならそのやり方を教えてもらいたいです。 自前で、格納する機能を作る必要があると思います。 例えば、 初期化リストを受け取って、vector<unique_ptr<Base>> を返却する関数を作れば可能。 手元で確認していませんが、関数のイメージとしては、 初期化リスト受け取り→reserveで要素数指定→emplace_backで格納 が良いと思います。 現在はpush_backを使って一つづつ格納していますが、醜いような気がします。 (あと、新しい要素を追加するときにp...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: 基底クラスの必要性について
返信数: 6
閲覧数: 4026

Re: 基底クラスの必要性について

Taskクラスを継承しているクラスは、Taskクラスとして扱えるため
配列にまとめるなどして処理しやすい利点があったり、
Taskクラスに定義されているメソッドが存在することが保証できたりする。

とかでしょうか。
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: androidでのiniファイルの読み込み方
返信数: 7
閲覧数: 4542

Re: androidでのiniファイルの読み込み方

オフトピック
Math さんが書きました:"すべての処理を C++ で実行できれば良いのですが、Android の基本言語が Java である関係で、
Java を使用しないと使うことができない機能が沢山あります。"
VS2015は1つのソリュウションにC#,VB,C++,C... プロジェクトは当たり前ですが..
C++からJavaのAPIを呼び出せるのは、リンク先を見てわかりますが、
ini操作用のAPIが存在するわけじゃないので、わざわざJavaじゃなくて良いのでは? という意図の質問です。
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: androidでのiniファイルの読み込み方
返信数: 7
閲覧数: 4542

Re: androidでのiniファイルの読み込み方

楽するなら適当なC++のライブラリを使用したら良さそう

android 用のプロジェクトで使用できるか確認してませんが、
Boost Property Tree Library
は、どうでしょう。

使えそうなライブラリが無い場合でも、
複雑なものでないなら、自前で実装しても良いかもしれません。
オフトピック
Math さんが書きました: INIファイルには”Java"を使う!
http://dxlib.o.oo7.jp/lecture/Android/Android_Java.html
素朴な疑問、C++プロジェクトなのに何故Java?
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: C++のRxにおけるダブルクリックの実装
返信数: 5
閲覧数: 4225

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

進展あったので 追記/解決 します。 非常にコンパクトにまとまりました。 Rxの恩恵が大きいと感じます。 最終的な実装は下記の通りです。 auto doubleClickStream = clickStream .time_interval() // 前回からの経過時間を送信 .filter([](auto v) { // 500ms より短いイベントのみ処理 using namespace std::chrono; return (duration_cast<milliseconds>(v).count() < 500); }); auto send_mousePos = doubleCli...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: キャストに関してのまとめ
返信数: 7
閲覧数: 3069

Re: キャストに関してのまとめ

C++のキャストについては、ここ読むと良いと思います。
http://ezoeryou.github.io/cpp-book/C++1 ... xpr.typeid
http://ezoeryou.github.io/cpp-book/C++1 ... #expr.cast
オフトピック
Nior さんが書きました:C言語のキャストに関して、以下のようにまとめました。
質問内容的に、大きな影響はなさそうだけど、
C言語とC++は区別されるべき、
Nior さんの提示しているページはC++についてかかれている。
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: C++のRxにおけるダブルクリックの実装
返信数: 5
閲覧数: 4225

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

Yuo さん 回答ありがとうございます" 前回の時間との差がある程度より小さければダブルクリックになるのですから,単純に前回との差を調べればよいことになります。 面白そうなので,コードを書いてみました。 分かりやすいコードを用意していただき助かりました。 提示して頂いたコードを使用する事で、ダブルクリックが実現できました。 Reactive Extensions 的なコードを意識しすぎて難しく考えすぎていたようです。 「Rx ダブルクリック」でググってRxJava on Androidのコードをもとに考えついたのは, buffer_with_time_or_count を使う解でした。 ただ、...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: C++のRxにおけるダブルクリックの実装
返信数: 5
閲覧数: 4225

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

お世話になります。 現在、「Reactive Extensions」の勉強として rxcppを使用して、ダブルクリックのイベント処理を実装しています。 実装途中で、行き詰まり質問することにしました。 ダブルクリックのイベントを定義する際に、 「時間内に2回クリックしたとき」を表現したいのですが、イマイチ実装がわかりません。 とりあえず、bufferメソッドを使用して2個ずつイベントを通知する実装としている為、 「2回クリックしたとき」しか表現できていない状態です。 ここに、制限時間を定義するにはどうしたらよいでしょうか。 可能であれば、具体的な実装例が欲しいです。 宜しくお願い致します。 下記...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: たくさんの...は何ですか
返信数: 8
閲覧数: 2933

Re: たくさんの...は何ですか

Math さんが書きました:... はコンピュータでは”たくさんの”を意味します。It's means " ... is many"(たくさんとは複数のという事です)
これは、間違っています。(少なくともC++では)
0個である可能性もある為
正しくは、「省略」を意味します。

https://cpprefjp.github.io/lang/cpp11/v ... lates.html
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: たくさんの...は何ですか
返信数: 8
閲覧数: 2933

Re: たくさんの...は何ですか

手っ取り早く、意味を知りたいのでしたら
下記のキーワードを調べると良いです。
提示されているコード中で、ラムダ式が使用されていますが
質問内容は、「...」(エリプシス)の意味なので省略します。
オフトピック
JAT さんが書きました:下記C言語文に存在する四つの「...」に意味不明です。
提示されているコードは、C++(C++14以降)のものであり、C言語ではありません。
今回の回答は、C++を前提とした回答となります。
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: c++ 範囲forとイテレータについて
返信数: 3
閲覧数: 2806

Re: c++ 範囲forとイテレータについて

 1.範囲forとイテレータを用いて代入ができなかった原因 auto it は、一時変数なので、代入を行っても元の配列の内容には影響しません。 (it には、vector配列の要素がコピーされているだけ)  2.このコンストラクタ内で範囲forとイテレータを用いて代入を行う場合の正しい書き方 auto& it に変更することで、要素への参照を取得できます。 配列要素への参照なので、元配列の書き換えが行われます。 範囲ベースfor (抜粋) // 範囲forとイテレータを用いて初期化. int i = 0; for (auto& it : this->noteName) { it.id = i...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: C言語のキャストについて
返信数: 6
閲覧数: 3000

Re: C言語のキャストについて

先に、気になった点。 C言語のキャストについての質問です。 型の変換だと聞いたのですが、 int a = std::atoi("123"); 文字列から数値へ変換しています。 これをキャストと呼ぶのでしょうか? C言語(C++でもいいです)のキャストをする事によって、メモリの値が書き換わる事がありますか? という質問です。 質問内容が変わっていませんか? (これはキャストですか?→キャストしたらメモリ書き換わりますか?) [hr] C言語(C++でもいいです)のキャストをする事によって、メモリの値が書き換わる事がありますか? という質問です。 C++であれば、 変換した結果を得るために、キャス...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: [c++] テンプレートクラスにおける処理の分離
返信数: 4
閲覧数: 2437

Re: [c++] テンプレートクラスにおける処理の分離

「テンプレートクラスにデータを保持、別のクラスに処理を書く」ということは、 //ヘッダ template<typename T> class A{ T x;//データを保持 } //ソース class B{ //どうにかしてAクラスのメンバにアクセスして処理を行う //T Add(T obj){return obj+A::x}   みたいなイメージ? } このようなイメージを私は持ってたんですけど。。。 (あくまで自分が読んだ限りの解釈ですが、) 記事の内容を見る限りだと、 「別クラス」と言っているのは、テンプレートクラスの実装の事を言っているように見えました。 A<型> の、「型」に入る内...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: [c++] テンプレートクラスにおける処理の分離
返信数: 4
閲覧数: 2437

Re: [c++] テンプレートクラスにおける処理の分離

別のクラスはどのような構成にすればいいのでしょうか? こちらは、質問の意味がくみ取れませんでした。すいません。 (実装側のコーディング方法という意味であれば、後記のコードを参照) そして、もしよろしければ上のAクラスを実際に分離してもらえないでしょうか? こうじゃないですか? //A.cpp template<typename T> T A<T>::Add(T obj){ return x + obj; } 後、ヘッダー側のセミコロンが抜けています。 //A.h template<typename T> class A{ private: T x; public: T Add(T obj);...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: C言語のキャストについて
返信数: 6
閲覧数: 3000

Re: C言語のキャストについて

言葉としての意味なのか、プログラム用語としてなのかで変わる気がします。

言葉の意味で考えると、変換を行うのでキャストですが、
プログラム的な意味では、タイプキャストではないので、違うと思います。
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: C++でファイル名を取得して動画を再生したい
返信数: 10
閲覧数: 7130

Re: C++でファイル名を取得して動画を再生したい

解決方法は、既に書かれているので環境について。 VS2013環境では、該当箇所でエラーしないので環境依存の問題の様です。 開発環境は、明記した方がよさそうです。 環境:VS2013 // VS2013だと filename() はstring型 string a = p.filename(); 環境:VS2015 // VS2015だと filename() はpath型 → エラー string a = p.filename(); filesystemは、正式リリースではないので 使用する際は、仕様変更されることを考慮した方が良いです。 https://msdn.microsoft.com/...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: バッチ起動のPowerShellでDLLの読み込みに失敗する
返信数: 28
閲覧数: 14088

Re: バッチ起動のPowerShellでDLLの読み込みに失敗する

結論としては、 「バッチ埋め込みのPowerShellでC#コードに任意のライブラリを使用する事はできない」 とします。 Assemblyのメンバを使用してできなくもなかったですが、 本来はコンパイル時の指定で事足りるはずなので不毛。 PowerShellのみで実装する場合は、動作しますが、 Add-TypeのC#コード中で任意のライブラリを使用/読み出すには制約があるようです。 (自作のDLL内で使用される.Netバージョンが指定できない為、環境によってエラーする) 結局、 エラー原因を含め、 Add-Type の ReferencedAssemblies で読み込みを行ったライブラリを C...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: バッチ起動のPowerShellでDLLの読み込みに失敗する
返信数: 28
閲覧数: 14088

Re: バッチ起動のPowerShellでDLLの読み込みに失敗する

今現在確認できた事として、 ReferencedAssembliesで自作DLLの読み込みを行えるが、 環境によっては例外が発生する。(Windows8.1環境で、呼び出した段階で例外が発生した) dllの読み込みで、.Netのバージョンが依存となる点が問題といった感じでしょうか。 現在の方法だと問題がありそうなので方針を変更して、 C#のコードで、うまくバージョン選択して参照を追加する方法がないか調べてみます。 (私のホームページにPowerShellとC#とVBについてかなり詳しく書いたはずなのでよんでみて) http://powershell-vb-memo.nisinippon.com...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: バッチ起動のPowerShellでDLLの読み込みに失敗する
返信数: 28
閲覧数: 14088

Re: バッチ起動のPowerShellでDLLの読み込みに失敗する

Math さんが書きました:それなら2つのdllを同じにして実験せよ。¥!(いまいそがしのに..)
もっともっと自分で考えろ。そうしたらもっと大きな間違いに気付くはず。①時間はかけてかんがえろ!
別に、即時に回答が欲しいわけでないので、
忙しいのであれば、レスは後でも構いません。

自分で考えて解決しなかったので、質問しているのです。

あと、もっと大きな間違えを指摘してください。
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: バッチ起動のPowerShellでDLLの読み込みに失敗する
返信数: 28
閲覧数: 14088

Re: バッチ起動のPowerShellでDLLの読み込みに失敗する

ReferencedAssembliesってGAC関係なくないですか?

自作の.Net向けDLLはカレントディレクトリに配置し使用できました。
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: バッチ起動のPowerShellでDLLの読み込みに失敗する
返信数: 28
閲覧数: 14088

Re: バッチ起動のPowerShellでDLLの読み込みに失敗する

質問文 自分が今行いたい事は何か バッチ起動のPowerShell埋め込みワンライナーを使用して Add-TypeでC#コードを使用する際し、.Net用のDXライブラリを使用したいと思います。 なぜ、ps1の形式をとっていないのかというと、セキュリティ設定が必要になったりし、 使用者側に手間がかかるためです。 batの形式に埋め込むことで、ユーザー側の手順として起動するだけで済みます。 PowerShellは、Windows7標準なので、新たにインストールする/させる必要がない為、使用しています。 (OSさえあれば、使用者の環境に依存しない) どのように取り組んだか(プログラムコードがある場...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: バッチ起動のPowerShellでDLLの読み込みに失敗する
返信数: 28
閲覧数: 14088

Re: バッチ起動のPowerShellでDLLの読み込みに失敗する

>OS標準機能で、動けばCSIを使用しますが >配布とかするのに環境依存になるのは避けたいです。 >(対象はWindows7~Windows10を想定しています) 落ち着いてよく読むこと。中学生向きに書いたのだから。 このリンクですよね。 http://csi.nisinippon.com/index.html さっき目を通したときに、「VS2015」だったり「csi」の文言があったので 環境依存だと思って読んでいたのですが、間違っていたでしょうか。 とりあえず、読み進めてみます。 なをPowerShellはプログラミング言語でもありFormも簡単に作れます。 # アセンブリ読み込み #Ad...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: バッチ起動のPowerShellでDLLの読み込みに失敗する
返信数: 28
閲覧数: 14088

Re: バッチ起動のPowerShellでDLLの読み込みに失敗する

>bat起動ワンライナーで、動作させることを目的としているので マウス Wクリックで大丈夫です。 OS標準機能で、動けばCSIを使用しますが 配布とかするのに環境依存になるのは避けたいです。 (対象はWindows7~Windows10を想定しています) >staticメソッド等を使用する際にオブジェクトを取得してから使うのは、微妙と感じました。 間違ってる。staticメソッドを使用する際にオブジェクトを取得してから使うのではなく[クラス名]でつかう! 大抵のグロバール関数(メソッド)はそうです。 http://csi.nisinippon.com/ps--a.png Asin,Acos・...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: 直接ウィンドウサイズを変更したい
返信数: 3
閲覧数: 2421

Re: 直接ウィンドウサイズを変更したい

手元で確かめたわけじゃないので、断言できませんが、
DXライブラリの公式リファレンスにないのであれば、目的の操作はサポートされていないのでしょう。
(隠し関数的な感じで、ヘッダーに定義はあるってことも考えられますが、それこそサポートされているのか不安)

WindowsAPIを使用して、
無理やり操作を行ったところでDXライブラリの動作に影響が起こる可能性があるので(解像度とか)
DXライブラリ本家の掲示板で、直接要望を出してみるのもありかもしれません。
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: バッチ起動のPowerShellでDLLの読み込みに失敗する
返信数: 28
閲覧数: 14088

Re: バッチ起動のPowerShellでDLLの読み込みに失敗する

この様な”ヒアーーストリング”によるコンパイルは(C#3)は今(C#6)では無意味です。VS2015はMicrosoftさんが長年の失敗を乗り越え遂にコンパイラの一本化に成功した初のコンパイラでありcsc.exeで全てが出来るのでこのような方法を用い無くても簡単に実現できます。 私のホームページ http://csi.nisinippon.com/index.html をご覧ください。 また http://dixq.net/forum/viewtopic.php?f=3&t=18829 のようにcsc.exeによるコンパイルはVisualStudioIDEと同一に(VS2015から)なりまし...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: バッチ起動のPowerShellでDLLの読み込みに失敗する
返信数: 28
閲覧数: 14088

バッチ起動のPowerShellでDLLの読み込みに失敗する

お世話になります。 PowerShellのbat起動ワンライナーにおける、埋め込みC#コードについて ReferencedAssemblies オプションによる.Net向けDxLibライブラリ(dll)の読み込みで分からないことがあり質問しました。 バッチファイルのディレクトリに存在する「DxLibDotNet.dll」を呼び出した際に、 下記のようなエラーで、実行時にエラーしてしまいます。 ※「DxLib.dll」「DxLib_x64.dll」も同ディレクトリに配置しています。 "1" 個の引数を指定して "Run" を呼び出し中に例外が発生しました: "ファイルまたはアセンブリ 'DxLi...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: C++のメニュー画面
返信数: 51
閲覧数: 16923

Re: C++のメニュー画面

このプログラムの一部を自分流に改造して、新たなシーンを追加してもいいでしょうか? 自分が提示したコードに関しては、 特に断りなしに自由に使用してもらって構いませんが、無保証とさせていただきます。 (ゲーム部分のコードは、不知火さんの提示されたものです) 新たなシーンを追加する際は、 下記の部分に注意すればおそらく大丈夫です。 110~117行付近 シーン列挙 シーンを登録した順と対応します 164~293行付近 シーン定義 トップシーンとゲームシーンの定義となっています。 428~431行付近 シーン登録 トップシーンとゲームシーンをシーン管理に登録(追加)する処理です。 勝敗の判定が白黒逆...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: C++のメニュー画面
返信数: 51
閲覧数: 16923

Re: C++のメニュー画面

すいません自分はVisual Studioで作っているので下の方法でプロジェクトを立てて、No11さんのコードを入力したのですが、変なバグが沢山出てしまいました。 あまりにも多すぎたので画像として送ります。 pngファイルもプログラムの内部に入れましたし、きちんと入力したはずなのに明らかにおかしなバグばかり出ているので何かが足りないのでしょうか? 私の場合は Microsoft Visual Studio 2013  パソコンはWindows 8 です。 同程度の環境を作ってビルドしましたが、普通にビルド通りますね。 コンパイルエラーに関して、コード側に問題がないのは確かです。 https:...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: C++のメニュー画面
返信数: 51
閲覧数: 16923

Re: C++のメニュー画面

Visual Studioのバージョン等、環境に関して明記してください。
No10に明記してありますが、自分は、VS2013/Windows10 で動作確認しました。

あと、No11のメッセージは自分じゃないので、お答えしかねます。
(自分の提示したコードとまったく同じかまだ確認していない為)
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: UnityにファイルをD&Dした際にファイル名を取得する方法について
返信数: 1
閲覧数: 1173

Re: UnityにファイルをD&Dした際にファイル名を取得する方法について

Unityについて詳しくないので、より最適な方法があるかもしれません。ご了承ください。

ゲームウィンドウに対するイベント/メッセージ処理自体を
Unity側がサポートしていない限り、
WindowsAPIを使って、実装することになると思います。

軽く調べたところ、DllImportを使用しているサンプルがあったので
(Pro限定?かもしれませんので、必要に応じて確認してください。)

実装可能と考えると
真っ先に思いつくのは、「サブクラス化」ですね。
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: C++のメニュー画面
返信数: 51
閲覧数: 16923

Re: C++のメニュー画面

どのソースコードに対しての質問でしょうか?

自分が投稿したレスのコードであれば、C++ですが問題ないでしょうか?
(ついでに、シーン管理であって、メニューのソースではありません。)
使用するのであれば、C++11規格対応のコンパイラ(Viusual Studio 2013以上)が必須ですので、ご注意ください。

とりあえず、自分の提示したコードであれば、
  • 164~424行付近
    シーンの定義
  • 428~431行付近
    シーンの登録
となっているので、読み解いてわからない点があれば、
質問してください。
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: C++のメニュー画面
返信数: 51
閲覧数: 16923

Re: C++のメニュー画面

コンパイルをコマンドラインでやるのであれば、
cl.exeにコマンドを入力することで
コンパイルができますが、
(参照:https://msdn.microsoft.com/ja-jp/library/f35ctcxw.aspx

Visual Studioが導入されているのであれば、プロジェクトを立てて、ビルドするだけで済みます。
(参照:http://dixq.net/g/h_01.html)

よくわからないのであれば、後者をお勧めします。
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: C++のメニュー画面
返信数: 51
閲覧数: 16923

Re: C++のメニュー画面

再び質問させて頂きます。今度は上のオセロのソースをcppファイルとhファイルに分けたいのですが、どのように分ければいいですか? 自分で考えてみたのですがよく分からないのです。 よろしくお願いします。 ソース分割ですが、プロトタイプ宣言について理解しているのであれば ヘッダー(.h)にプロトタイプ宣言 ソース(.cpp)に実装 といった感じで、基本は分割すれば良いと思います。 (公開範囲を制限するのであれば対応が必要です。) 下記のスポイラーは、元コードをソース分割する例です。 注意: 初期化、更新、描画、終了 の関数を追加 各種判定が、白黒逆な気がしたので入れ替えました main.cpp #...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: C++のメニュー画面
返信数: 51
閲覧数: 16923

Re: C++のメニュー画面

C++でも良いなら、シーン管理はこんな感じですかね ソース分割したものが必要であれば声かけてください 以下のスポイラーは似たような感じに動くように、コードを書いてみたもの 注意: ソース分割なし 適当に作成したので、ミスがあるかもしない LoadGraph等のエラーチェックなし(元のコードのまま) 環境:VS2013/Windows10 #include "DxLib.h" // DxLib #include <iostream> // cerr #include <array> // array #include <vector> // vector #include <functional...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: ■ 2017年明けましておめでとうございます 新年挨拶トピック ■ [雑談]
返信数: 7
閲覧数: 4804

Re: ■ 2017年明けましておめでとうございます 新年挨拶トピック ■ [雑談]

あけましておめでとうございます。

C言語の勉強に活用させていただいています。
これからも宜しくお願いします。
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: ファイルパスをディレクトリパスに変換
返信数: 10
閲覧数: 6145

Re: ファイルパスをディレクトリパスに変換

(質問内容と若干話題が逸れるのでオフトピックですが、) filesystemを使用する方法もあります。 起点となるファイルパスさえあれば、parent_pathメソッドでディレクトリパスは簡単に取得できます。 環境:VS2015 / Windows10 /* * ・ファイルパスをディレクトリパスに変換 //*/ #include <iostream> #include <string> #include <filesystem> int main(int argc, char **argv) { // 名前空間名省略用に宣言 namespace fsys = std::experimenta...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: C言語での単語検索とカウントプログラム
返信数: 30
閲覧数: 14031

Re: C言語での単語検索とカウントプログラム

SH 様の提示されたコードを修正した場合 自分は、rewind()を使用しない方法がわからないので、 前に書いたコードを英文対応させてみました。 SH様のコードで使用されている関数を使用しているので 関数縛りは大丈夫かなと微修正 あまり、綺麗に書けていませんが参考になれば幸いです。 (ミスがあるかもしれませんので、ご注意ください) [理想の動作例] 以下の内容のテキストファイル、test.textがあったとする。 Seventy-one years ago, on a bright cloudless morning, death fell from the sky and the world...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: C言語での単語検索とカウントプログラム
返信数: 30
閲覧数: 14031

Re: C言語での単語検索とカウントプログラム

ここまで多数の返信をいただきながとても重要なことを書いていませんでした。講師は課題には学習した範囲までの内容しか使ってはいけないという人で、具体的に言うと、授業で使用される「新・明解C言語(柴田望洋)」の11章までの内容で作成しなければなりません。よって、rewind() やfgetなどのファイル系の関数、構造体などは使用できません。(以前まだ習っていないstrcmpを使用し評価を下げられました。現在は学習済みです。) 大変申し訳ありません・・・。 具体的に何を使用して良いかわからなかったので 授業で使用している書籍を調べましたが、該当書籍が3種類ありました。 新・明解C言語入門編 目次 h...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: C言語での単語検索とカウントプログラム
返信数: 30
閲覧数: 14031

Re: C言語での単語検索とカウントプログラム

オフトピック
みけCAT さんが書きました: となっており、assignment-expressionとは一番「外側」(ASTで一番根に近い所)の演算子がコンマ演算子でない式のことなので、
いずれも定数でない式が要素数として使えることがわかります。
コマンドライン引数の数は、実行時にならないとわかりません。
それを最適化で定数にしてしまうようなコンパイラは欠陥品でしょう。
解説ありがとうございます。納得しました。
単純にVCが対応していないだけなんですね。
勉強になりました。
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: C言語での単語検索とカウントプログラム
返信数: 30
閲覧数: 14031

Re: C言語での単語検索とカウントプログラム

ミスがあるかもしれませんが とりあえず、CとC++で動くものです。 追記:(以下のプログラム、英文を考慮していませんでした。ピリオドの対応してません。) 環境:VS2013/Windows10 // Cのつもり #include <stdio.h> #include <stdlib.h> #include <string.h> #define BUFF_MAX 128 // 標準入力から単語を取得する int GetWord(char* pText) { for (int idx = 0; idx < BUFF_MAX; ++idx) { char ch = getchar(); // 単語の...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: C言語での単語検索とカウントプログラム
返信数: 30
閲覧数: 14031

Re: C言語での単語検索とカウントプログラム

SH さんが書きました:他にもおかしな点がありますが分かる方いたら教えていただきたいです。
実行結果に直接関係ないですが、気になったので・・・

以下のコードは、おそらく環境依存です。
配列の宣言に変数を使用していますが、定数として解釈されている様です。
SH さんが書きました:

コード:

int  word_cnt[argc - 1];
Clang 3.8 / LLVM 3.8 では、コンパイルできましたが、
Visual Studio 2013 のコンパイラでは、コンパイルエラーします。
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: 二次元配列のポインタを他のソースファイルで書き換えたい
返信数: 13
閲覧数: 5200

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

ポインタの付け替えで実現する場合は、以下の通りです。 となっており、a[0]への変更がbに反映されておらず、bへの変更がa[0]に反映されていません。 今回の検証ではGCCを使用しましたが、inemaruさんの指定するVS2013では正しく「ポインタの付け替え」が行われていますか? 【追記】 VC(2013かは不明)で検証 しましたが、同様にa[0]とbは独立しており、コピーが行われていると考えられます。 ご指摘ありがとうございます。 完全に自分の ミス でした。 VS2013で確認したところ、コピーが行われています。 付け替えは行われていません。 落ち着いて考えると、std::arrayの...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: 二次元配列のポインタを他のソースファイルで書き換えたい
返信数: 13
閲覧数: 5200

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

申し訳ありません。 質問斜め読みして、回答が的外れになってました。 (前の回答は、スポイラーテキストにしました。) ポインタの付け替えで実現する場合は、以下の通りです。 ↑ 間違いでした。このコードの動作は、 コピー です。ご注意ください。 // 環境:VS2013 #include <cstdio> #include <array> std::array<int, 5> b = { 11, 12, 13, 14, 15 }; void setPointer(std::array<std::array<int, 5>, 2>& refA) { refA[0] = b; } void outpu...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: DxLibでゲームの実行EXEとは別に設定EXEを用意したい
返信数: 15
閲覧数: 6867

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

設定ファイルを共有する実行ファイルがある状況について
注意したい点を一つ書くと、

フォーマットは、気を付けた方が良いかもしれません。

テキスト形式(txt, ini, xml, json等)であれば、問題は起こりにくいですが
バイナリ形式だと型の違いを意識してデータを読み書きする必要が出てきます。

windows環境であれば、バイトオーダー(エンディアン)までは気にする必要ないと思うので
別言語からバイナリを書き出す場合は、型の対応表を見ながらの対応になると思います。
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: 全く訳の分からない例外がスローされてしまいました
返信数: 7
閲覧数: 3359

Re: 全く訳の分からない例外がスローされてしまいました

エラー的に、「配列外アクセス」な気がしますが、
Visual Studioならウォッチ機能等を使用してデバッグするのが速いと思います。
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: 二次元配列のポインタを他のソースファイルで書き換えたい
返信数: 13
閲覧数: 5200

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

コピーで実現する場合のソース アンセーフ版(生配列を使用する場合) // 環境:VS2013 // Visual Studio だと必要かもしれん #define _SCL_SECURE_NO_WARNINGS #include <cstdio> #include <array> int b[] = { 11, 12, 13, 14, 15 }; void setPointer(int* pA) { // 配列bのサイズは5なので bの先頭アドレス+5で終端アドレス std::copy(b, b + 5, pA); } void output(){ printf("bのアドレス = %p\n"...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: 二次元配列のポインタを他のソースファイルで書き換えたい
返信数: 13
閲覧数: 5200

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

コピーで実現する場合のソース コピーで良いなら、std::copyを使えば安全 // 環境:VS2013 #include <cstdio> #include <array> std::array<int, 5> b = { 11, 12, 13, 14, 15 }; void setPointer(std::array<std::array<int, 5>, 2>& refA) { std::copy(b.begin(), b.end(), refA.front().begin()); } void output(){ printf("bのアドレス = %p\n", &b.front());...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: C# 行数を表示したい。
返信数: 17
閲覧数: 7209

Re: C# 行数を表示したい。

Visual Studio以外にもC#のIDEはあるので、
(フォーラムルール的にも)開発環境は明記した方が良いでしょう。

UnityやMacの話だった場合、
MonoDevelopが使用されている可能性があるわけです。
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: 構造体の初期化
返信数: 5
閲覧数: 2132

Re: 構造体の初期化

初期化がゼロクリアで、C++であるなら、
自分は下記のようにしています。

コード:

MyStruct data = {};
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: C++の勉強方法についての質問
返信数: 7
閲覧数: 3541

Re: C++の勉強方法についての質問

しかし、Direct3D等のサンプルにしても、古いC++の文法で書かれていることがほとんどです。 だから、Direct3DかつC++11のサンプルだけをやるというようにこだわると何もできなくなります。 まるで、C++11が別言語みたいな言われようですが、 新しいC++を知ったからと言って、古いC++が理解できなくなる訳じゃないです。 「何もできなくなる」というのは大げさな上に間違っています。 C++11はC++なのですから古いコードで書かれていても、 C++11のコンパイラでコンパイルできます。 ただ、技術を勉強するときに新しいものにこだわるのは少し問題があります。 例えばDirectXにつ...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: エラーができて実行ができないプログラム
返信数: 8
閲覧数: 2956

Re: エラーができて実行ができないプログラム

後はライブラリリンクだけできればよかったのに、 なぜCLAPACKに変更したのでしょうか? CLAPACKは使用経験がないので、自分では分かりかねます。 とりあえず、エラーについて 予想 で答えます。 error C2733: 'zgesv_' : オーバーロードされた関数の C リンケージの 2 回以上の宣言は許されません。 CLAPACK側に同名(zgesv_)の定義があるため、エラーしていると予想。 realがあいまい Complex から real に変換できません どこかに定義されたreal関数とstd::real関数が名前衝突したと予想。 提示されたコードで怪しいと思った点を修正し...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: エラーができて実行ができないプログラム
返信数: 8
閲覧数: 2956

Re: エラーができて実行ができないプログラム

そのエラーは、「関数zgesv_の実体がない」というエラーだと思われますが Lapackライブラリのリンクが、できていないのでは? extern "C" { // Lapackライブラリの関数呼び出し用の定義 void zgesv_ ( const int& N, const int& NRHS, Complex** A, const int& LDA, int* IPIV, Complex** B, const int& LDB, int& INFO ); }; もし自前で実装するのであれば、(本末転倒) extern "C" { void zgesv_ ( const int& N, co...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: エラーができて実行ができないプログラム
返信数: 8
閲覧数: 2956

Re: エラーができて実行ができないプログラム

エラーを見る限り58行目で、テンプレート引数を解決できてないだけっぽい
以下のコードで、解決しませんか?

コード:

  // info = zgesv( A, x, b );
  info = zgesv<N>( A, x, b );
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: C++の勉強方法についての質問
返信数: 7
閲覧数: 3541

Re: C++の勉強方法についての質問

5. DirectXプログラミングをやりたい場合は、まずC++でDLLを読み込む方法と  COMプログラミングができないと無理だった気がする(私より詳しい人頼みます) 個人的な所感です。 C++で(基本的な)処理を書く上では、自前でDLLを読み込んだりはしません。 (VSやDirectXの実装側でやってくれている為) また、COMプログラミングに関して詳しく知っていなくても 関数の意味や3Dに関する知識があれば、普通にC++(よりC言語寄りだけども)が使える程度で どうにかなりそうだと思います。 (専用の関数を使用するため、COMプログラミングを感じさせない作りになっている) [hr] 以下...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: C言語、構造体について
返信数: 6
閲覧数: 3784

Re: C言語、構造体について

かずま さんが書きました:

コード:

#include <stdio.h>  // 関数 printf の宣言を取り込む (定義は入っていない)
inemaru さんが書きました:

コード:

#include <stdio.h> // (関数printfの定義が入っているファイルを読み込む)
かずま様の説明と自分の説明に差があったので補足です。

確かにヘッダーには、宣言しか入っていませんが、
最終的に、定義(実装)の入っているファイルが読み込まれるようになるので
<stdio.h>には、定義が入っていないという意味です。
(printfの実装は組み込まれていることが多いですが・・・)
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: 分割してよみこんだ画像(4方向に動かす)の透過ができません
返信数: 4
閲覧数: 2414

Re: 分割してよみこんだ画像(4方向に動かす)の透過ができません

つまり、 「透過画像の透過部分が透過されていない」 ということでしょうか?

もしそうだとしたら、
  • 全体のコード(もしくは再現コード)
  • 使用している画像の詳細等(問題なければ)
  • DXライブラリのバージョン
  • 開発環境
程度は、提示した方がよさそうです。

最低限必要な情報が欠損した状態の質問には答えられないことが多いので
フォーラムルールの質問テンプレートの使用をお勧めします
http://dixq.net/board/board.html
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: C言語、構造体について
返信数: 6
閲覧数: 3784

Re: C言語、構造体について

インスタンスという用語をそのソースで使うのがふさわしいのかどうか、 いささか疑問に思います。 単に「変数を定義する」くらいでいいような気がしなくもありません。 意味的には、間違っていないつもりですが、 C言語は、C++と違ってオブジェクト指向を導入していないので、 用語としては、スタンダードではないかもしれません。 (C++の構造体はクラスと同等なので、明確に区別していない限りインスタンスと呼んでも問題ない) 解説サイトで調べたところ、聞きなれないですが、 構造体のインスタンス = オブジェクト と呼ぶらしいです。 詳細は、ロベールさんの解説に丸投げします。 ・メモリ上にある変数を実体(イン...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: C言語、構造体について
返信数: 6
閲覧数: 3784

Re: C言語、構造体について

ソースが何をやっているのか?という質問であれば、こんな感じでどうでしょうか? (用語の意味が不明瞭な場合は、検索してください) #include <stdio.h> // (関数printfの定義が入っているファイルを読み込む) // 座標X,Yを持った構造体 point の定義 typedef struct point { double cx; // 座標X double cy; // 座標Y } point; // 構造体を引数で初期化してインスタンスを返却する関数 point set_point(double x, double y) { point pt; pt.cx = x; pt....
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: TEを引数にして、JUDGEを返す
返信数: 13
閲覧数: 4183

Re: TEを引数にして、JUDGEを返す

あれ、さっきとコメント表示が違う・・・。 いえ、まだ勉強途中なので関数、引数、戻り値に関してもあまりよく理解していません。 編集と返信が入れ違いになってしまったようです。 (レスの内容にキーワードを書き加えてました。) とりあえず、検索すれば解説サイトがあるので活用してください。 最低限、「関数」について理解していないと、この課題は解けません。 以下は、関数についての参考までに // 関数を使うと // 共通化できる部分をまとめたり // 処理を分割したりできる // 戻り値のない関数 void Proc1(){ printf("Proc1"); } // 戻り値のある関数 int Proc...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: TEを引数にして、JUDGEを返す
返信数: 13
閲覧数: 4183

Re: TEを引数にして、JUDGEを返す

このプログラムができてすぐ、勝敗部分等に関数を使い、TEを引数にしてJUDGEを返す関数を作ってもらいたいと課題を頂きました。 今回教えて頂きたいのは、この<<関数を使い、TEを引数にしてJUDGEを返す関数を作ってもらいたい>というところです。 正直言って、ちょっと言っている意味がわからなかったのですが、 同じ処理を何度も書かないためにする必要があるものなのかなと思っています。 関数などのサイトや、本などを見てやっていますがいまいちどうしていいかわかりません。 漠然とした質問ですが、一体TEを引数にしてJUDGEを返すとはどういうことなのでしょうか。 単純に、<<じゃんけんの結果を返す関数...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: visual stdio エラーについて困ってます
返信数: 2
閲覧数: 1401

Re: visual stdio エラーについて困ってます

プロジェクトのプロパティから
[構成プロパティ]→[C/C++]→[プリコンパイル済みヘッダー]
の[プリコンパイル済みヘッダー]が[使用]とか[作成]にもしなってたら
[プリコンパイル済みヘッダーを使用しない]に変更すると治るかもしれない

画像のみで判断なので、あまり期待しないでください。
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: [C#]先に値型の変数を返して、後から参照でその値を変更したい
返信数: 6
閲覧数: 3600

Re: [C#]先に値型の変数を返して、後から参照でその値を変更したい

C#詳しくないですが、
少なくとも、どこかに result の参照を退避させないと
result にアクセスする事すらできないので変更とか無理なんじゃ・・・
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: インスタンス名.メソッド名().メソッド名()の記述の仕方
返信数: 2
閲覧数: 1310

Re: インスタンス名.メソッド名().メソッド名()の記述の仕方

記述式の名称は、知りませんが 戻しているのは、「参照(参照渡し)」じゃないですか? https://www.google.com/search?&q=C%2B%2B+%E5%8F%82%E7%85%A7%E6%B8%A1%E3%81%97 #include <iostream> struct Hoge final { Hoge& MethodA(){ std::cout << "A" << std::endl; return (*this); } Hoge& MethodB(){ std::cout << "B" << std::endl; return (*this); } }; int m...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: C++でシーンが変更できない
返信数: 2
閲覧数: 2568

Re: C++でシーンが変更できない

軽くみた感じ、 Sceneを継承したTopで呼んでるSceneChangeのミスに見えた void Top::Update(){ if(CheckHitKey(KEY_INPUT_Z)==1){ SceneChange(Scene_Menu); // ↑ これは this->SceneChange(Scene_Menu); を呼んでるけど //  実装が空だから何も起きない // 本当は、コンストラクタで受け取ってる changer を使って //  changer->SceneChange(Scene_Menu); にしたかった? } } 以下のスポイラーは似たような感じに動くように、コード...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: ファイルに書かれた式の計算について
返信数: 12
閲覧数: 7347

Re: ファイルに書かれた式の計算について

課題の目的だけを達成するなら、 解析処理すら必要ない気がしたので書いてみました。 シェルに丸投げする方法です。 もちろん環境依存です。 Windows10・VS2013 環境で確認しました。 (パフォーマンスチューニングはしていません。) #include <iostream> // io #include <cstdlib> // system #include <fstream> // ifstream #include <vector> // vector #include <string> // string // テキスト型 typedef std::vector<std::stri...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: 引数の違う親クラスの関数が使えなくなる
返信数: 6
閲覧数: 3085

Re: 引数の違う親クラスの関数が使えなくなる

(using宣言以外の方法では、)型を明示すれば呼び出せます。

コード:

class Base {
public:
	int func(int a) {
		return a + 1;
	}
};

class Myclass : public Base {
public:
	int func(int a, int b) {
		return a + b;
	}
};

int main()
{
	Myclass a;
	//a.func(1); //エラー
	a.Base::func(1);
	return 0;
}
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: c++の命名規則について
返信数: 8
閲覧数: 4610

Re: c++の命名規則について

標準ライブラリの命名規則に関しては、
イマイチはっきりした情報が見つけられない(不確かな情報)なので、
あまり信用しないで
一意見として受け取ってください。

少し調べてみたところ、C++標準委員会とかで議論されてはいるみたいですが
  • ローカル変数と型名の衝突の回避
  • テンプレート引数名をテンプレートクラス内でusing宣言する事が多い為、名前衝突が起こりうる
くらいのことしかわかりませんでした。

誤解釈とかもありうるので、
間違ってたらすいません。
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: 2つのヘッダに同名の構造体とクラスが…
返信数: 1
閲覧数: 1390

Re: 2つのヘッダに同名の構造体とクラスが…

自分は、「Kinect」と「Oculus Rift」のどちらのSDKも使用したことが無いので 「別々のファイルにある定義が衝突するが、定義を書き換えず呼び出し元で解決したい」 と解釈して回答します、ご了承ください。 定義そのものを、名前空間に閉じ込める方法で とりあえずの解決は、できると思います。 以下、参考コードです namespace Kinect { #include "Nuisensor.h" } namespace Oculus { #include "OVR_Math.h" } int main() { // 使用するときは、スコープを使って区別する Kinect::Vector4...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: 図を挿入したい
返信数: 2
閲覧数: 1492

Re: 図を挿入したい

図とかファイルをエディタ上に表示する方法は知らないので、 (内容を確認できるようにする程度であれば)使えそうな方法を書いてみます。 Visual Studioのエディタはデフォルトでハイパーリンクに対応しています。 以下の方法はどうでしょうか。 「構文図やフローチャート、表など」は、任意の製図ソフト等で作成する 作成した図は、画像として保存する コード中で、図を確認するために 作成した画像のパスをコメントに書く パイパーリンクとして認識されるようにファイルパスをコメントで書いておくことで 確認したいタイミングで[Ctrl+クリック]でタブが開いて確認できると思います。 int main(voi...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題なんですが、どうしてもわからないんです。誰か教えてください!
返信数: 5
閲覧数: 3042

Re: 学校の課題なんですが、どうしてもわからないんです。誰か教えてください!

とりあえず、タイピングミスじゃなさそうな部分で問題になりそうな点を上げてみます。 変数 min が比較に使用しているのに初期化されていない sum / s の部分は、整数で計算されてしまう 0除算が発生する(変数 s を平均計算前にデクリメントしている為) [hr] 以下、修正したコードです。 できるだけ、元ソースを意識して簡単にしてあります。 (開発環境が明記されていないので、環境によっては動かないかもしれないです。) #if _MSC_VER #define _CRT_SECURE_NO_WARNINGS #include <cstdio> #include <climits> #else...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: c++の命名規則について
返信数: 8
閲覧数: 4610

Re: c++の命名規則について

自分が普段使っている命名ルールは、「Google C++スタイルガイド」です。 https://google.github.io/styleguide/cppguide.html 公式ページは英語ですが、検索すると有志の方が日本語に翻訳したものが見つかると思います。 「Google C++スタイルガイド」で、クラス名(型名)は、 大文字で始めて、単語の頭文字を大文字にして、アンダーバーを使わないようにする。 となっているので、パスカル記法を使っています。 個人的に可読性は良いと感じています。 標準ライブラリの命名規則について未確認かつ不確かな情報ですが、 「C++標準ライブラリは、既存のライブ...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: ライブラリについて
返信数: 6
閲覧数: 3124

Re: ライブラリについて

C言語でなくて、C++を使用していますが、 論点はそこになさそうなので、回答してみます。 [hr] 前提として、 現場で働いている人は、成果物を提出する事が仕事です。 つまり、 納期までに成果物が完成することが必須条件で、 個人の技量や知識は二の次です。 それを踏まえて、 ライブラリの件について書くと 品質 開発効率 人件費 を両立させるために、 標準か外製かなんて関係なく普通に使用されてます。 使用するための条件はありますが、 大体はライブラリのライセンス絡みです。 (ライセンスによっては、製品をオープンソースにしないといけなくなったりする為) 特に、例に挙げられているような、 グラフィック...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: 同一アドレスが、異なる値を指している?
返信数: 2
閲覧数: 1955

Re: 同一アドレスが、異なる値を指している?

返答ありがとうございます。
挙動について、納得できました。

今回の状況は、
dataの初期化値が定数になっていることが、原因だったようです。

逆に、dataの初期化値を変数にすると
アドレスから値を取得するので、
const変数でも書き換えできてしまうことがわかりました。

コード:

// 元になるconst変数
const int data = rand();
また、アセンブリで実際の動作を確認することを覚えました。

特に、Compiler Explorer に関して良Webツールを
知ることができて良かったです。

ありがとうございました。
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: 同一アドレスが、異なる値を指している?
返信数: 2
閲覧数: 1955

同一アドレスが、異なる値を指している?

お世話になります。 C++における、const変数の挙動について解せない事があったので質問しました。 アドレスの値を変数に格納後、 格納した変数を使用してアドレスの指す変数を書き換えるといった方法で const なデータの書き換えを行った際、 同一のアドレスが指す内容が変化する動作についてです。 プログラム中で、変数がどのようになっているのか分からず困っています。 書き換えられたデータは、どのように元の数値を保っているのでしょうか? (ソースコード中では、dataが書き換え後も120として扱われている挙動) constなデータの書き換えが目的ではないので、 const装飾子は、本来書き換えられ...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: 抽象クラス1の子クラス抽象クラス2の子クラスの関数
返信数: 10
閲覧数: 3325

Re: 抽象クラス1の子クラス抽象クラス2の子クラスの関数

ゲームプログラミングにおいては、 共通で扱える関数があるものを抽象化するのが効率的です。 特に、パフォーマンス的な観点からdynamic_castを行うようなことは避けるべきです。 ツール開発や、データ解析において Object型(共通型)に格納後、ダウンキャスト(dynamic_cast)する手法は使用されるので (シリアライズ/デシリアライズ、データパーサーでは使用される) あくまでも、ゲーム開発では避けるべきといった意味です。 なので、今回の場合は、 更新処理といった、 ゲームオブジェクトに共通する基底クラスを作るのが良いと思います。 ・初期化 ・終了処理 ・計算 ・更新 は、ゲームオブ...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: 抽象クラス1の子クラス抽象クラス2の子クラスの関数
返信数: 10
閲覧数: 3325

Re: 抽象クラス1の子クラス抽象クラス2の子クラスの関数

「何をしようとしてそのような実装にするのか」は 今回は気にせずに回答しています。 (Any型やObject型の類でオブジェクト指向としては破綻していない為) 目的によって、それが適した方法なのかという論点では hideさんの言う通りで、完全に外視状態です。 なので、 以下に、考え方を書きます。 「物」を継承した「生き物」 「生き物」を継承した「人」 「物」は「人」か? と考えたとき、 「物」:One 「生き物」:Two 「人」:Three でマップできる気がします。 「物」にない機能を「人」が持っている状況で 「物」を使って「人」の機能を使用することを許可するのか? 許可するのであれば、 ・何...
by inemaru
7年前
フォーラム: C言語何でも質問掲示板
トピック: 抽象クラス1の子クラス抽象クラス2の子クラスの関数
返信数: 10
閲覧数: 3325

Re: 抽象クラス1の子クラス抽象クラス2の子クラスの関数

こんな感じでどうですか? ThreeをOneに代入するには OneにBを呼び出すための定義が必要です。 コンパイルエラーする場合は、override キーワードを削除してください ・抽象クラスを使用する場合 #include <iostream> struct One { virtual ~One(){}; virtual void A(){}; virtual void B(){}; // 定義が必要 }; struct Two : public One { virtual void B() override { std::cout << "Two::B" << std::endl; } }...

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