タグ

C++に関するkiszkのブックマーク (47)

  • 非VisualStudio環境でC++/CLIが動かない問題の解決策 - wosugi blog

    まータイトル通りなんですが、同様の現象で困っている方も多いと思いますので、ここにまとめておきます。 はじめに 自分はよく、研究開発プロジェクトやデモアプリの制作のために、GUI部をC#で作って画像処理部をC++で作る、といったことをします*1。C#コードからC++コードを呼び出す方法としては DllImport と C++/CLIを用いた薄いラッパー経由 の二つがあり、個人的には後者をよく用います。(後者について【id:wosugi:20100211】が参考になるかも。) 問題 ただ、このC++/CLI、VisualStudioがインストールされてない環境ではエラーが発生する、という問題がありました。具体的には、C++/CLIで作ったDLLにアクセスした際に「System.IO.FileLoadException」というのが発生します。要するに「あるべきDLLが見つかりませんよ〜」と言って

    非VisualStudio環境でC++/CLIが動かない問題の解決策 - wosugi blog
    kiszk
    kiszk 2012/04/25
    サイドバイサイドが、debug版で出た際にはdllをカレンドディレクトリにコピーする
  • gccにおけるatomic操作命令の個別関数

     gccとVC x86/x64環境で開発する上で, gccとVCはどちらも非常に優れたC/C++コンパイラです. ただLinuxWindowsのどちらの環境でも動作するようなC/C++コードを書くためには, gccとVC, およびそれらが動作するOSの違いが問題になることがあります. ここではそれらの違いについてまとめていきたいと思います. なお説明を簡単にするためにマクロを多用していますが実際には可能なら別の手段をとるか, 名前がぶつからないような命名規則に則ったマクロ名をつけることをお薦めします. 対象 定義済みマクロ 有用なマクロ コンパイルオプション 演算子の代替表現の抑制 日語のコメント 型 pragma attributeとdeclspec ファイル入出力 テキストとバイナリ 巨大なファイル static変数の初期化 snprintf 例外ハンドラ intrinsic関数

    kiszk
    kiszk 2012/03/14
  • GCC 4.7 Release Series — Changes, New Features, and Fixes - GNU Project

    GCC 4.7 Release Series Changes, New Features, and Fixes Caveats The -fconserve-space flag has been deprecated. The flag had no effect for most targets: only targets without a global .bss section and without support for switchable sections. Furthermore, the flag only had an effect for G++, where it could result in wrong semantics (please refer to the GCC manual for further details). The flag will b

    kiszk
    kiszk 2011/11/01
    gcc 4.7での最適化
  • Deep C

    Programming is hard. Programming correct C and C++ is particularly hard. Indeed, both in C and certainly in C++, it is uncommon to see a screenful containing only well defined and conforming code.Why do professional programmers write code like this? Because most programmers do not have a deep understanding of the language they are using.While they sometimes know that certain things are undefined o

    Deep C
  • Microsoft juices C++ for massively parallel computing

    Fusion Summit Microsoft has announced a new technology designed to help C++ developers build massively parallel applications. Known as C++ Accelerated Massive Parallelism – or C++ AMP for short – the technology will be included in the next version of the company's Visual C++ compiler, and Microsoft plans to open up the specification for others to use. Microsoft principal native-languages architect

  • C++0x Memory Model 第1回 - 1.9 Program execution - Cry’s Diary

    前回の記事:C++0x Memory Model 第0回 - メモリモデルとは何か 以下では, C++0x プログラミング言語の標準規格として一貫して N3225 を参照しています.文中で (1.9/12) などという表現が出てきた場合は N3225 における条項を指しています. 太字かつ斜字体の言葉 は N3225 で C++0x で定義される用語, 太字の言葉 はブログエントリ中で特別な意味を持たせた用語として定義しているものです. 第1回目のこの記事では,まず,ただ1つの 実行スレッド thread of execution だけを考慮した場合のメモリモデルに関わる基的な事項を説明していきます.複数スレッドが存在する状況下でのメモリモデルに関する説明する上で,単一の実行スレッド内に限定した場合の状況を把握しておくことは必要不可欠なのです. 第0回において,プログラム中にただ1つの

    C++0x Memory Model 第1回 - 1.9 Program execution - Cry’s Diary
  • モダンなC, C++の開発環境の構築方法 - 考える人、コードを書く人

    まだC, C++がないようなので書いてみた。主にLinux(DebianとかUbuntu)での環境構築について。 コンパイラ まずはapt-getでコンパイラをインストールする。UbuntuやDebianなら以下のコマンドでgccやg++および標準ライブラリ等がインストールされる。 $ sudo apt-get install build-essential デバッグツール デバッガおよびデバッグツールは少なくとも以下の三つは入れる。(あとltraceも欲しいかな?) GDB 言わずと知れたGNUのデバッガ Valgrind メモリリークや不正メモリアクセスの検出 strace システムコールのトレース $ sudo apt-get install gdb valgrind strace ビルドツール C, C++のビルドツールといえばまずmakeが浮かぶけど、最近ではSConsやCMak

    モダンなC, C++の開発環境の構築方法 - 考える人、コードを書く人
    kiszk
    kiszk 2010/08/01
  • C++ Portability Guide - MDC Doc Center

    この後に、多くのマシンやコンパイラを横断して移植可能な C++ のコードを作る上で役に立つ規則・ガイドライン・TIPS の集まりが続きます。 この情報は、25 にものぼる異なるマシンと1ダース分以上の C++ コンパイラを横断して多くのコードを移植した結果として生まれたものです。これらのうちいくつかはあなたを苛立たせ、もうお手上げだと感じて「えい、<愛用の C++ 機能を追加>できないのはヘボコンパイラだ」と叫びたくなるかもしれません。しかし、これが移植性の高いコードの現実です。あなたがルールを守るなら、あなたのコードはすべての Mozilla プラットフォーム上でシームレスに動作し、新しいマシンへの移植も容易となるでしょう。 私たちは情報を最新に保つよう努力しています(例えば、ときどきコンパイラの改定で制約が取り除かれるかもしれません)。これらの tips に関する最新情報や、追加の情報

    kiszk
    kiszk 2010/06/03
  • [Prog] C 言語のヌルポインタ(NULL pointer) の意味について - NAKAMURA Minoru's Diary

    2002 | 10 | 11 | 12 2003 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 2004 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 2005 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 2006 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 2007 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 2008 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 2009 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1

    kiszk
    kiszk 2010/05/15
    C言語のNULL pointer。AIXで0番地がread可能であることは、あまり知られていないらしい(あたりまえか)
  • IBM Developer

    kiszk
    kiszk 2010/05/15
  • VC++DLL作成補足(Hishidama's VC++Memo "DLL")

    DLLの補足 DLL作成の指針やDLLに関連するファイルについて。 暗黙的リンクと明示的リンクの使い分け DLLに関係するファイル ソースファイル defファイル libファイル expファイル dllファイル [/2007-09-28] 序数 暗黙的リンクと明示的リンク DLLの呼び出し方法には、暗黙的(静的)リンクと明示的(動的)リンクがある。 暗黙的リンクと明示的リンクの特徴(メリット・デメリット) 暗黙的(静的)リンク 明示的(動的)リンク 関数の宣言

    kiszk
    kiszk 2010/04/27
  • hata.cc

    This domain may be for sale!

    kiszk
    kiszk 2010/04/27
  • FreeBSD/Linux C言語 動的ライブラリ dlopen/dlsym/dlclose/dlerror

    このドキュメントの内容は、以下の通りです。 C言語で共有ライブラリを動的ロードする方法 共有ライブラリのサンプル 共有ライブラリのコンパイル 共有ライブラリをロードするプログラム 共有ライブラリをロードするプログラムのビルド 実行 C言語で共有ライブラリを動的ロードする方法 FreeBSDやLinuxなどのUNIXで共有ライブラリを動的にロードするには、 dlopen()を利用します。 共有ライブラリのサンプル #include <stdio.h> int hello (int i) { printf ("Hello, %d\n", i); return (i + 1); } 共有ライブラリのコンパイル gcc -shared hello.c -o hello.so 共有ライブラリをロードするプログラム 1. dlopen()で共有ライブラリ hello.so をロードします。 2. dl

    kiszk
    kiszk 2010/04/27
  • ビルドのコマンドとプロパティのマクロ

    Download Visual Studio 2005 Retired documentation from Official Microsoft Download Center Internet Explorer was retired on June 15, 2022IE 11 is no longer accessible. You can reload Internet Explorer sites with IE mode in Microsoft Edge.

    kiszk
    kiszk 2010/03/12
  • 循環参照するDLLのビルド

    ブログは更新を停止しました。Aerieをよろしくお願いいたします。 目次 ホーム 連絡をする RSS Login Blog 利用状況 投稿数 - 677 記事 - 0 コメント - 27983 トラックバック - 211 ニュース 2009年3月31日 更新を停止しました。引き続きAerieを御愛顧くださいませ。 2009年2月3日 原則としてコメント受付を停止しました。コメントはAerieまでお願いいたします。 詳細は2月3日のエントリをご覧ください。 2008年7月1日 Microsoft MVP for Developer Tools - Visual C++ を再受賞しました。 2008年2月某日 MVPアワードがVisual C++に変更になりました。 2007年10月23日 blogタイトルを変更しました。 2007年7月1日 Microsoft MVP for Window

    kiszk
    kiszk 2010/03/12
  • textdrop.net - このウェブサイトは販売用です! - textdrop リソースおよび情報

    kiszk
    kiszk 2010/01/11
  • C++ Style Guide

    Benjy Weinberger Craig Silverstein Gregory Eitzmann Mark Mentovai Tashana Landray This style guide contains many details that are initially hidden from view. They are marked by the triangle icon, which you see here on your left. Click it now. You should see "Hooray" appear below. Hooray! Now you know you can expand points to get more details. Alternatively, there's an "expand all" at the top o

    kiszk
    kiszk 2010/01/10
  • Dynamic loading - Wikipedia

    3.2.1 Most Unix-like operating systems (Solaris, Linux, *BSD, etc.)

    kiszk
    kiszk 2010/01/10
    binaryのDynamic loading
  • 安全なシグナルハンドラを実装するには ――C/C++セキュアコーディング入門(4)

    UNIXなどPOSIX準拠のOSでは、割り込みや例外を抽象化した「シグナル」と呼ばれる仕組みを用いてプロセスに(非)同期イベントが通知されますが、シグナルハンドラで行える処理には制約があり、これを無視したコードを書くと脆弱性につながる恐れがあります。今回はシグナルハンドラの制約に関するルールを見てみましょう。 シグナルハンドラの制約 UNIXなどPOSIX準拠のOSでは、割り込みや例外を抽象化した「シグナル」と呼ばれる仕組みを用いてプロセスに(非)同期イベントが通知されます。ユーザが[Ctrl]-[C]キーを押してプログラムを中断しようとしたり(SIGINT)、整数オーバーフローが発生したり(SIGFPE)すると、それらのイベントに対応するシグナルがカーネルからプロセスに対して通知されるのです。プログラマは、これらのシグナルを受信した時に特定の動作を行わせる「シグナルハンドラ」を書くことが

    安全なシグナルハンドラを実装するには ――C/C++セキュアコーディング入門(4)
    kiszk
    kiszk 2010/01/10
  • Pfi Seminar 2010 1 7

    3. Caution!  発表には次のものは含まれません  C++の有用なプログラミング技法  広くつかわれるべきテクニック  その他なにか視聴者に役立つもの  そういうのを期待された方はあしからず 4. 自己紹介  田中英行 (@tanakh, id:tanakh)  Haskell愛好家  C++歴  1998年 ~  2005年ぐらいまでは漫然と使っていました  社内用C++ライブラリ(pficommon)を作成  C++のきもさを再認識  その辺で得られた知見を話します ○ ※実際に使われているわけではないです

    Pfi Seminar 2010 1 7
    kiszk
    kiszk 2010/01/07