サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは本日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。
C向けのライブラリのコードをながめていたらちょくちょく以下のようなコードをみる. #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ /* Cのコードがたくさん */ #ifdef __cplusplus } #endif /* __cplusplus */ なんだろうと思って調べてみたら. __cplusplus g++でコンパイルされるとdefineされるマクロ extern "C" { /* Cのコード */ } ブレースでかこまれた範囲で,リンカでの識別子の扱い方がCスタイルになる らしい."この範囲のコードはCで書かれてるから,g++でコンパイルするときはCだとおもってよろしくしてあげてね"ってことみたい. Cで書かれたライブラリはCで使われることもC++で使われることもあるから,こういうコードでうまくその差を吸収して
DLL作成のTips BCCでDLL GCCでDLL LCCでDLL VCでDLL 戻る BCC - Borland C++ Compiler (c)Implise corp. DLLの作り方 メインソースにwindows.hをインクルードする(必要であればWindowsx.hも) ソースに工夫を加える 具体的には, a. main()の代わりにdllmain()を使う b. dllmainとエクスポートする関数の全てに__declspec(dllexport)とWINAPIをつける. …例… __declspec(dllexport) void WINAPI dllmain(void){} __declspec(dllexport) BOOL WINAPI foo(int x,int y) { if (x==y)return 1; return 0; } 必要であればdefファイルを作成
●概要 市販の参考書には殆ど載っていなく、MSDNにてサンプルを見つけ、それを突破口にして開始できた。C、C++については、必要に応じて習得して行く方式とする。筆者としては、DLLができ、それをVBで使えれば、途中経過やスマートさは気にしない。 ●開発環境 Visual Studio 2005 にて開発できる。VC++ 2005 でも同じ。無料ソフトのExpress版では、PlatformSDK(無料)を導入し、ある手続きを行えば開発できるようになるらしい。 →その後、分かったこと:無料ソフトのExpress版で、PlatformSDK(無料)を導入するのは、設定ウィザードにDLL指定を表示させるためで、標準では、DLL を指定できないようになっている。導入なしでExpress版で、C++ネイティブDLLを開発するには、 Visual C 2005 → 新しいプロジェクト → Visual
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く