タグ

2020年10月30日のブックマーク (7件)

  • C++のマングルとextern "C" { - wagavulin's blog

    C++とCが混在したプログラムを書くとときどき定義したはずの関数がundefinedだと言われることがある。そんなときの対処法とマングルの話。 その前にまずはC言語だけの場合を考える。例えば以下のようなCのプログラムを書いてみる。 /* main.c */ #include "foo.h" int main(){ func1(); return 0; } /* foo.h */ #ifndef FOO_H void func1(); #endif /* foo.c */ #include "foo.h" #include <stdio.h> void func1(){ puts("ok"); } 見てのとおり、main.cはfunc1関数を呼び出しており、foo.cはfunc1関数を定義している。当然、main.cをコンパイルしてできたmain.oもfunc1を参照し、foo.cをコンパイ

    C++のマングルとextern "C" { - wagavulin's blog
  • Windows上のVisual StudioでQt

    nmakeの実行 D:\qt-4.3.2> nmake : Advanced compiler supportの展開 有志がQt Windows OpenSource版の対応コンパイラを増やしたパッチを開発しています。Acsプロジェクト・サイトから、acsファイル acs-4.3.x-patch3.zip を入手し、qtソースパッケージを展開したディレクトリに展開します。 Visual Studio環境設定されたコマンドプロンプトを起動し、Acsのバッチファイルを実行します。 D:\qt-4.3.2> installpatch43.bat すると、別なコマンドプロンプトが現れます。which already exists! Assume -R? [n] と何回か問い合わせてくるので、ただ{Enter]キーだけ入力して進めました。([y] + [Enter]としたところ、このプログラムがエラ

    reboot_in
    reboot_in 2020/10/30
    “qmake -projectを実行すると、その時点でそのディレクトリに存在するC++ソースファイル、ヘッダーファイルを検索してプロジェクトファイルの雛形が生成されます。” .proファイルを生成する
  • コネクションプールとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

    最初から接続した状態を用意しておくよ 使いたい人には、接続した状態を貸し出すよ 接続にかかる負担を減らすための仕組みだよ 簡単に書くよ コネクションプール(英:connection pool)とは ゲストカード貸出型接続方式のこと。 もう少し具体的に書くと 接続した状態を最初からいくつか用意しておいて、何か用事がある人にはその接続を貸してあげることで、いちいち接続する手間を減らす機能のこと です。 サクッと一言で説明すると あらかじめ接続した状態を用意しておいて、それを貸し出すことで、使うときに接続する手間を減らす機能 が「コネクションプール」です。 ……と、いきなり言われても、分かりませんよね。 そもそも「接続した状態」ってなんだよ!と思う方もいるでしょう。 大丈夫です。 順番に見ていきましょう。 例えば、そうですね。 ここにピヨ太君が所有するピヨピヨビルがありました。 ピヨピヨビルはセ

    コネクションプールとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
    reboot_in
    reboot_in 2020/10/30
    “ゲストカード貸出型接続方式。接続した状態を最初からいくつか用意しておいて、何か用事がある人にはその接続を貸してあげることで、いちいち接続する手間を減らす機能のこと”
  • 間違ったフォーマットのプログラムを読み込もうとしました。 - のねのBlog

    System.BadImageFormatException はハンドルされませんでした。 Message="間違ったフォーマットのプログラムを読み込もうとしました。 (HRESULT からの例外: 0x8007000B)" このエラーをみたとき、どういう意味のエラーなのか、わかりませんでした。 どうすればいいのか?、検索してみたところ、以下のような原因で起こっています。 .Netの64bitと.Netの32bitのものが混ざってると起きるようです。 プロジェクトは64bitで動こうとしていますが、 既にあるLibが32bitでできているため動かないようです。 C#のプロジェクトのビルドでプラットフォームタイプを、 ”AnyCPU”から”x86”に変えたところ、動くようになりました。 VisualC#2013パーフェクトマスター (Perfect Master SERIES) 作者: 金城

    間違ったフォーマットのプログラムを読み込もうとしました。 - のねのBlog
    reboot_in
    reboot_in 2020/10/30
    “ C#のプロジェクトのビルドでプラットフォームタイプを、 ”AnyCPU”から”x86”に変えたところ、動くようになりました。”
  • QLibrary resolveがfalseを返す - c ++、qt

    私は今クラスファイルを動的にインクルードしようとしていて、.dllをQLibraryにロードすることによってそれを選択しました。私が今抱えている問題は、resolve()メソッドを呼び出そうとすると0が返されることです。 編集: それまでの間、問題は解決され、私はコードを編集することにしました。 これは.dllのヘッダファイルです。 #ifndef DIVFIXTURE_H #define DIVFIXTURE_H #include<QObject> #include<QVariant> class __declspec(dllexport) DivFixture : public QObject { Q_OBJECT public: Q_INVOKABLE DivFixture(); Q_INVOKABLE void setNumerator(QVariant num); Q_INVOK

    reboot_in
    reboot_in 2020/10/30
    “ライブラリをコンパイルするときにdllexportが使用され、リンクするときにdllimportが使用されます。”
  • C言語のインクルードガードはpragma onceを使う - C言語入門

    インクルードガードとは、ソースコードのinclude処理が重複して発生することを防ぐためのものです。C言語では、define/ifndefのプリプロセッサディレクティブを利用して、インクルードガードを実現していました。処理系の拡張により pragma once が追加されました。 読み方 pragma once ぷらぐま わんす インクルードガード いんくるーどがーど include guard いんくるーどがーど 概要 C言語のプリプロセッサ(cpp) は、プリプロッサディレクティブ の include が出現するたびに、ヘッダファイル(.h)を展開しようとします。 インクルードガードは、ヘッダファイルの相互インクルードで無限ループに陥ることを防ぐことができます。ただし、defineの重複を排除することができないため、思わぬ副作用を産んでしまうこともありました。 何度もインクルードするこ

    reboot_in
    reboot_in 2020/10/30
    “インクルードガードとは、includeディレクティブによる相互インクルードの無限ループを防ぐために利用されます。 C言語では、インクルードガードは pragma once を利用します。”
  • フェミニストの話が食い違う理由

    フェミニストと表現規制の話題で新作が出ました。 https://b.hatena.ne.jp/entry/blog.livedoor.jp/dqnplus/archives/2004043.html 今度はこの江口寿史っぽい女性のイラストが問題だと。 1.「とぼけている」という頻出問答イラストを見た感じ、露出度は高いですが、まあイケイケ感ある夏の水着と言う感じで、 卑猥な描写や18禁的な描写がないことはどの立場の人も同意できると思います。 実在女性がこの格好で夏の海岸などを歩いても逮捕されることは無いでしょう。 では何を問題とするのか。 どのような論陣を立てて当該イラストを取り締まるのか。 これは規制の側に立つ人へ説明を求めて良いことですし、規制側に説明責任があります。 はてなでの陣営トップコメントは以下のような物でした。 tobaritooth 別に私は元の看板が問題だとは思わないけど、

    フェミニストの話が食い違う理由
    reboot_in
    reboot_in 2020/10/30