タグ

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

  • C#でネイティブ関数ポインタコール - Qiita

    using System; using System.Runtime.InteropServices; [UnmanagedFunctionPointer(CallingConvention.Cdecl)] delegate int func_i_i(int v); int CallFunc(IntPtr fp) { func_i_i p; p = (func_i_i)Marshal.GetDelegateForFunctionPointer(fp, typeof(func_i_i)); return p(1); } Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informat

    C#でネイティブ関数ポインタコール - Qiita
    reboot_in
    reboot_in 2020/11/07
    “IntPtrで渡された関数ポインタをDelegateに変換”
  • [.NET] DllImportを使わずにアンマネージドDLL関数を呼び出してみる

    まったく使わないわけではないけど。参考にしたのはこのあたり。 http://dobon.net/vb/dotnet/links/extractarchive.html http://momotchi.net/forums/711/ShowPost.aspx http://msdn2.microsoft.com/ja-jp/library/system.runtime.interopservices.marshal.getdelegateforfunctionpointer.aspx 同じようなインターフェイスを持つ、複数のアンマネージドDLL関数を呼び出す必要があったのでいろいろ調べていたら、 .NET 2.0 から用意された System.Runtime.InteropServices.Marshal.GetDelegateForFunctionPointer を使えば関数ポインタをデリ

    [.NET] DllImportを使わずにアンマネージドDLL関数を呼び出してみる
    reboot_in
    reboot_in 2020/11/07
    “System.Runtime.InteropServices.Marshal.GetDelegateForFunctionPointer を使えば関数ポインタをデリゲートに変換できる”
  • クラスとインタフェース (mixi 日記アーカイブ)

    このアーカイブは同期化されません。 mixi の日記が更新されても、このアーカイブには反映されません。 COM はクライアントサーバシステムであるため、 クラスの設計について、特殊なルールを定めている。 それは、実装側と利用側を明確に区別し、 利用側には、クラスの継承階層を持ち込まず、 インタフェースのみによる制約を課していることである。 一般的なオブジェクト指向の設計では、 クラスとインタフェースを駆使して開発を行うが、 その結果完成したクラスの継承階層には、 「クラスを単に利用する」ための情報と、 「クラスを拡張する」ための情報が混在している。 前者は利用側のための、後者は実装側のための情報である。 利用側にとって必要なのは、 どのような具象(コンクリート)クラスが利用可能で、 それらクラスでどのようなメソッドを呼べるかである。 クラス階層とか、実装がどのクラスか等には興味がない。 p

    reboot_in
    reboot_in 2020/11/07
    “ C# には、Object というルートクラスがあるが、 COM においては、IUnknown がルートインタフェースであり、 あらゆる COM インタフェースが必ず実装している。”
  • 実践C++入門講座11回目 広大なメモリを使うために(ヒープ) | Theolizer®

    こんにちは。田原です。 前回までに説明したプログラム用メモリ、静的変数用メモリ、スタック用メモリは、基的にコンパイル時にサイズが決まります。もし、これらの領域しか使わない場合、巨大なメモリを搭載しているコンピュータでプログラムを走らせても、その巨大なメモリを有効活用できません。それは悲しいですよね。 その巨大なメモリをうまく使うための仕組みが「ヒープ用メモリ」です。今回は、このヒープとその使い方について解説します。 第4回目 コンピュータの仕組みについてで、メモリとそのアドレス、そしてポインタについて少し説明しました。これらはたいへん重要ですので、軽く復習します。 int a; int* b=&a; 上記のようにint型の変数aがあったとします。その変数aはどこかのメモリ上に割り当てられますので、アドレスが割り振られています。その先頭アドレスを取り出す演算子が & でした。つまり、 &a

    実践C++入門講座11回目 広大なメモリを使うために(ヒープ) | Theolizer®
    reboot_in
    reboot_in 2020/11/07
  • 第十三回-03 ドット演算子とアロー演算子

    例えば int 型に通常の変数とポインタ変数があったように、クラスにも通常の変数とポインタ変数とが存在する。 クラスにおいてポインタの利用は避けられない事が多い。 ページではそのために必要な知識を学ぶ。 テレビクラスをポインタ変数で利用してみよう main 関数における実際の使用例がこちら。第十三回-01とやっていることはほとんど変わらない。 コピーペーストできる形式での表示は以下の通り。 #include "Television.h" int main() { Television *tvp; // テレビクラスのポインタの宣言 tvp = new Television(); // テレビクラスのオブジェクトをヒープ領域に確保 // これにより、ポインタの指す先が決まる。 // ここでコンストラクタが呼ばれる tvp->printStatus(); tvp->setPower(1);

    第十三回-03 ドット演算子とアロー演算子
    reboot_in
    reboot_in 2020/11/07
    C++ では変数からのメンバ関数呼び出しはドット演算子、 ポインタからのメンバ関数呼び出しはアロー演算子、と使い分ける
  • Python での読み書きモード(r+/w+/a+)について|Junf / Jade

    [はじめに] Python 入出力時に、読み込みと書き込みを行う「読み書き」モード ( r+/w+/a+ ) の挙動について検証を行い、まとめました。 [検証1]ファイルが存在しない時の挙動 存在しないファイル 'abc.txt' に対して各 mode で open を試みます。 open('abc.txt', mode)(結果) r+: FileNotFoundError: [Errno 2] No such file or directory: 'abc.txt' w+, a+: 'abc.txt' が作成される 'r+' の場合は例外が発生しますが、'w+' と 'a+' では空のファイルが作成されます。 [検証2]ファイルポインタの位置確認(1) 'abc.txt' の内容を 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' としておき、下記を実行します。 with ope

    Python での読み書きモード(r+/w+/a+)について|Junf / Jade
    reboot_in
    reboot_in 2020/11/07
    “'r+' の場合は例外が発生しますが、'w+' と 'a+' では空のファイルが作成されます。”
  • How to append new data onto a new line

    reboot_in
    reboot_in 2020/11/07
    “hs.write("{}\n".format(name))”
  • Pythonのthreadingとmultiprocessingを完全理解 - Qiita

    現代の主なOSと言ったら、Mac OS,UNIX,LinuxWindowsなどがあります。これらのOSは「マルチタスク」機能をサポートしています。 マルチタスクとは?と思うかもしれませんが、例えばブラウザーを立ち上げて、音楽聴きながら、Wordでレポートを書くというシチュエーションでは、少なくとも3つのタスクが同時進行しています。そして、表のタスク以外に、裏ではOS関連の様々なタスクがこっそり動いています。 マルチコアのCPUで、マルチタスクが処理できるのは理解しやすいですが、シングルコアのCPUでもマルチタスクが可能です。OSはそれぞれのタスクを交替に実行しています。例えば、タスク1を0.01秒、タスク2を0.01秒、タスク3を0.01秒、タスク1を0.01秒......繰り返して実行していきます。CPUは速いので、ほぼ同時進行のように感じます。この交替実行のことをしばしば「並行処理(

    Pythonのthreadingとmultiprocessingを完全理解 - Qiita
    reboot_in
    reboot_in 2020/11/07
    Convoy Effectは遅いタスクに引きずられて、システム全体が遅くなるという性質
  • Processing large data files with python multithreading

    reboot_in
    reboot_in 2020/11/07
    “# map the entire file into memorymm = mmap.mmap(fp.fileno(), 0)# iterate over the block, until next newlinefor line in iter(mm.readline, b""):”
  • LNK2019:未解決の外部シンボル、LNK1120:外部参照1が未解決ですというエラーがどうしても消えません。 - OSはWin... - Yahoo!知恵袋

    LNK2019: 未解決の外部シンボル、LNK1120: 外部参照 1 が未解決ですというエラーがどうしても消えません。 LNK2019: 未解決の外部シンボル、LNK1120: 外部参照 1 が未解決ですというエラーがどうしても消えません。 OSはWindows7開発環境はvisualstudio2008、DXライブラリです。 エラー tekitama.obj : error LNK2019: 未解決の外部シンボル "float __cdecl ToRadian(float)" (?ToRadian@@YAMM@Z) が関数 "void __cdecl TekitamaShoot02(float,float,float)" (?TekitamaShoot02@@YAXMMM@Z) で参照されました。 1>C:\MyC\smp_yokogame01\Debug\smp_yokogame01

    LNK2019:未解決の外部シンボル、LNK1120:外部参照1が未解決ですというエラーがどうしても消えません。 - OSはWin... - Yahoo!知恵袋
    reboot_in
    reboot_in 2020/11/07
    “考えられる原因としては、 1、ヘッダに関数のプロトタイプを書いたけれど実装するのを忘れている。 もしくはどこか他のネームスペース内など実装位置が正しくない。 2、リンク時に必要なライブラリを追加忘れ。”
  • Qt OpenCV 等の外部ライブラリを含むVisualStudioのプロジェクトを配布したい

    reboot_in
    reboot_in 2020/11/07
    “DIR *QtCore.dll /S /B > result.txt みたいにして検索し、そのDLLをコピーして実行ファイルと同じディレクトリに置きました。”