タグ

dllに関するDecoyMakerのブックマーク (14)

  • TFS+Build Extentionsでビルドが実行できない環境 - ぶらっくの技術メモ

    DecoyMaker
    DecoyMaker 2011/10/11
    IESHIMS.dll WER.dll
  • [PDF] WinDBG. From A to Z! 日本語版 小國 健 (NTT DATA)

    1 WinDbg. From A to Z! WinDbg. From A to Z! By Robert Kuster December 2007. All rights reserved. www.windbg.info Japanese Edition By Tsuyoshi Oguni, February 2009 日語版 小國 健 (NTT DATA) Everything you need to know about WinDbg. And nothing you don’t. 2 WinDbg WinDbgを選ぶ理由 を選ぶ理由 なぜなら、WinDbgは... � マイクロソフトのWindowsプロダクトチームが、Windowsの 開発に利用している � よく使われているVisual Studioのデバッガよりも高機能 � 拡張DLLによる、機能の拡張が可能 � Windo

  • 関数のエクスポート

    今回から、DLLを実際に開発する方法について説明します。 この作業はコードの云々よりも、まずは作成するファイルがDLLであることを認識し、 プロジェクトの設定をDLLに対応させるところから始まります。 この設定の詳しい方法については、こちらのページを参照してください。 さて、肝心のコードですが、これはDLLの目的を考えてみると分かるはずです。 DLLは、EXEにエクスポートするための関数を実装しなければならないので、 当然ながら関数のコードを書くことになります。 BOOL Swap(int *lp1, int *lp2) { int tmp; if (lp1 == NULL || lp2 == NULL) return FALSE; tmp = *lp1; *lp1 = *lp2; *lp2 = tmp; return TRUE; } この関数は、第1引数と第2引数の値を入れ替えます。 こ

  • Potential Errors Passing CRT Objects Across DLL Boundaries

    Your code may have errors when you pass C Runtime (CRT) objects such as file handles, locales, and environment variables into or out of a DLL. Function calls across the DLL boundary can cause unexpected behavior if the DLL and any files that call into the DLL use different copies of the CRT libraries. A related problem can occur when you allocate memory (either explicitly with new or malloc, or im

    Potential Errors Passing CRT Objects Across DLL Boundaries
  • 安全な DLL の中にあるC++ のクラスのエクスポート

    最初に DLL とは? Windows には Dynamic Link Library ( 以下 DLL ) という、プロセス開始時・起動中に動的にライブラリをリンクする機能があります。このDLL を使うことで、 プログラムを他のアプリケーションと共有してメモリの節約になる 普通のライブラリとしても使え、アイコンやダイアログなどのリソースも格納することが出来る。 DLL の中にある処理やリソースを変更して DLL の変更のみでプログラムを修正することが出来る プロセス間でのメモリ共有を行うことも出来きる UNIX系にも似たような動的リンクライブラリがありますが、UNIX系のはコンパイラ側での対応であり、C言語のソースコードで互換性を保っているUNIXのアプリケーションで、動的にバイナリをリンクしにくい性質があるため、それほど使える機能ではないでしょう。 逆に DLL の欠点 DLLのバージ

  • 不鳥逢 - プラグイン対応アプリケーションについて

    プラグイン対応アプリケーションについて reshia Last update: 2006-06-30 Table of Contents 1. はじめに 2. 特徴 2.1. プラグインの特徴 2.2. プラグインを使うメリット 2.3. プラグインを使うデメリット 3. プラグインの種類 3.1. スクリプトタイプのプラグイン 3.2. DLLタイプのプラグイン 4. DLLを使ったプラグイン対応アプリケーションの実現方法(C版) 4.1. 必要になるWin32 API 4.2. サンプルプログラムの目的 4.3. プラグインの仕様 4.4. アプリケーションの作成 4.5. プラグインの開発 4.6. アプリケーションの実行 5. 落ち穂拾い 5.1. モジュール定義ファイルについて 5.2. 複数のプラグインのロード 5.3. 読み込むプラグインのファイル名取得方法 5.4. プラグ

  • Determine Which Exporting Method to Use

    You can export functions in either of two ways—a .def file or the __declspec(dllexport) keyword. To help you decide which way is better for your DLL, consider these questions: Do you plan to export more functions later? Is your DLL used only by applications that you can rebuild, or is it used by applications that you cannot rebuild—for example, applications that are created by third parties? Pros

    Determine Which Exporting Method to Use
  • 「Digital Mars C/C++ で小さいDLLを作る、又は関数の呼び出し規約に縛られないラッパーDLLを作る」

    何で必要になったか なんだってこんな変な物を作ることにしたかと言いますと。 このサイトで公開している「日語インクリメンタルサーチするマクロ」という物がありまして、これは香り屋さんの「C/Migemo」というDLLを使っています。 このDLLは1.2系まで各関数を "__cdecl" でエクスポートしていたのですが、1.3系から標準の "__stdcall" を使うようになりました。 でも配布条件や辞書ファイルのサイズの問題でDLLを同梱していないため、こちら側からはバージョンの指定が出来ませんでした。 そこで仕方がなく複数のバージョンのDLLで動作するよう改造することにしました。 以下はそのメモです。 ※作る過程で"Digital Mars C/C++ で小さいDLLを作る"方法も習得しました。 どうすれば呼び出し規約の違うDLLを差し替えて使えるようになるか いきなり詰まってしまいまし

  • 【C++/CLI】Vista到来。既存C/C 資産の.NET化を始めよう! - @IT

    ●Win32スタティック・ライブラリ(C++クラス)の準備 先ほどのhello関数と同様、簡単なネイティブ・クラスを考えます。ここでは「counter」という名前のソリューションとプロジェクトを作成し、counterクラスをC++で実装します(以下の開発手順は先ほどとほぼ同じなので詳細は省略します)。 #ifndef COUNTER_H__ #define COUNTER_H__ class counter { private: int value_; public: counter(); void increment(); int value() const; }; #endif

  • ダイナミック リンク ライブラリ(DLL)の基礎知識

    1. DLLの作り方(VC++編) 関数subをDLLにしたい場合,次のようにソースプログラムを作成する. 外部プログラムから呼び出したい関数(この場合sub)の前に __declspec(dllexport)という おまじないをつけておく(このおまじないがついていない関数はDLL外部からは見えないので安心). #include <stdio.h> __declspec(dllexport) int sub(int arg) { printf("sub %d\n", arg); return arg + 1; } sub.c 通常の静的にリンクして利用する関数を作る場合(*.objまたは静的リンク ライブラリ*.libを作ってリンクする場合)との違いは, DLLの外に公開したい関数の定義の前に__declspec(dllexport)というキーワードがつけることだけになっている. [さらに

  • Microsoft – クラウド、コンピューター、アプリ & ゲーム

    期間限定で Surface Pro 8 と対象のキーボードと同時購入で最大 31,900 円お買い得です。

  • http://rararahp.cool.ne.jp/vc/vctips/dll.htm

    VCで作成できるDLLには、大きく分けてWin32DLL,MFCDLLがあります。 Win32DLLは、MFCを使用しないDLLです。 また、MFCDLLには、レギュラーDLLと、拡張DLLがあり、 レギュラーDLLが、MFCを内部的に利用するDLL, 拡張DLLが、MFCライブラリクラスから派生したクラスをDLLを作成するとき に使うDLLです。まず、Win32 DLLを説明します。DLL内の関数を他のプログラムから呼び出すには、 その関数をエクスポートする必要があります。 エクスポートするには、declspec(dllexport)キーワードを 使用するか、DEFファイルを使用する方法があります。また、DLLをリンクするには、以下の2つの方法があります。・暗黙的リンク(静的リンク) ・明示的リンク(動的リンク) このようにDLLには、作成、使用方法にいくつか種類があります。そ

  • 二流プログラマの三流な日常: C++で作成したDLLを他の言語で利用できるようにする

    C++でDLLを作成していざVisual Basicから呼ぼうとすると関数が呼べない。 そんな問題を解決した経験があるならば、関数の装飾名や呼び出し規約についてご存じでしょう。実は、1年ほど前に同等の記事を長々と書きましたが、重要な部分だけを再びおさらい、ちょっと補足。 意味もなくDEFファイルを作っている人は理解が足りないかもしれません。 そもそも、言語による関数呼び出しとは、呼び出し先と呼び出し元で呼び出し規約を一致させる必要がある。呼び出し規約とは一緒に決めた約束事と思ってもらって構いません。 そして、旧Visual BasicがWindows APIと同じstdcall規約しかサポートしない事から、出来るだけ多言語から使えるようにするためにはstdcall規約を使うのが望ましいです。 さて、Visual C++でstdcall規約を使うと不幸な内部装飾が生成されるため、DLLの関数

  • 二流プログラマの三流な日常: 関数呼び出しの内部を理解する(1)

    内部を知らない人はWindowsのDLLで関数が正しく呼べないことが多いです。 また、UNIXを使う方も知識として覚えておいて損はないです。 C++の関数呼び出しについては、コンパイラとリンカが関係しています。 コンパイラは関数に装飾された名前(以下、装飾名)を作成します。 リンカは装飾名を使って、別ファイルにある関数や変数を参照します。 まず、この装飾名を調べる方法を紹介します。 コンパイラが付けた名前なので、調査対象は以下のファイルになります。 オブジェクトファイル(*.obj, *.o) ライブラリファイル(*.lib, *.dll, *.so) 確認しておきますと、ライブラリファイルとはオブジェクトファイルの集合です。 名前の調査には、Windowsの場合「dumpbin」コマンド(※1)を使います。 UNIXの場合は「ld」コマンド辺りだと思います。 ここではdumpbinを利用

  • 1