ページ 11

DLLファイルの作成について

Posted: 2016年12月13日(火) 12:02
by あらた
今、C++を学習中でDLLの作成と挙動確認をしようとしています。

当方の環境
OS : win7 32bit pro
開発環境 : visual studio 2015 community

今回、参考にしたサイトは下記になります。
http://replication.hatenablog.com/entry ... /29/093000

手順の通りDLLを作成し、下記コマンドを入力したところ、エラーがでました。
・入力コマンド
C:\Program Files\Microsoft Visual Studio 14.0\VC\bin\dumpbin.exe /exports HelloWorld.dll

・表示されたエラー(コンソールに表示されてたもの)
Microsoft (R) COFF/PE Dumper Version 14.00.24215.1
Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file HelloWorld.dll
LINK : fatal error LNK1181: 入力ファイル 'HelloWorld.dll' を開けません。

エラーの原因を調査しましたが、私の力では及びませんでした。
もしよろしければどこが間違っているのか、アドバイスを頂けないでしょうか。

Re: DLLファイルの作成について

Posted: 2016年12月13日(火) 13:15
by C6b14
ただしくはこうなります。

コード:

D:\cpp\_cpp\001\HelloWorld\Debug>dumpbin /exports HelloWorld.dll
Microsoft (R) COFF/PE Dumper Version 14.00.24215.1
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file HelloWorld.dll

File Type: DLL

  Section contains the following exports for HelloWorld.dll

    00000000 characteristics
    584F6D12 time date stamp Tue Dec 13 12:37:54 2016
        0.00 version
           1 ordinal base
           1 number of functions
           1 number of names

    ordinal hint RVA      name

          1    0 000110A5 GetHello = @ILT+160(?GetHello@@YAHPAD@Z)

  Summary

        1000 .data
        1000 .idata
        2000 .rdata
        1000 .reloc
        1000 .rsrc
        4000 .text
       10000 .textbss

D:\cpp\_cpp\001\HelloWorld\Debug>
DLLは正しく出来ている思いますが
C:\Program Files\Microsoft Visual Studio 14.0\VC\bin\dumpbin.exe /exports HelloWorld.dllが間違ってます。
DLLを作成したDirに移動する必要があります。

Re: DLLファイルの作成について

Posted: 2016年12月13日(火) 13:43
by C6b14
コンソールは開発者コマンド プロンプト for VS2015を使っていますか。(この場合はコマンドプロンプトでもいいのだけれど面倒です。)

Re: DLLファイルの作成について

Posted: 2016年12月13日(火) 15:22
by あらた
>C6b14さん

1です。返信ありがとうございます。

すごく初歩的なことでつまづいていたんですね。
アドバイスの通りdllがあるdirに移動してから実行すると
意図した表示を得ることができました。
ありがとうございました。

C6b14 さんが書きました:コンソールは開発者コマンド プロンプト for VS2015を使っていますか。(この場合はコマンドプロンプトでもいいのだけれど面倒です。)
→はずかしながらこのコンソールの存在を知りませんでした。

試しに開発者コンソールを起動してみましたが、、起動時から
C:\Program Files\Microsoft Visual Studio 14.0で作業ができるんですね。
ただ、今回の例だと結局dir移動をして実行をすることになり、
このコンソールのありがたみを実感できませんでした。

もしよろしければ今回の例で便利な使用例を教えて頂けないでしょうか。

Re: DLLファイルの作成について

Posted: 2016年12月13日(火) 15:44
by C6b14
私のホームページhttp://cswin10.nisinippon.com/cs/cs1/vs ... 1/c01.htmlをご覧ください。
VS2015全ての機能が使えます。http://cswin10.nisinippon.com/index.html

Re: DLLファイルの作成について

Posted: 2016年12月13日(火) 15:53
by C6b14
cl /? とか csc /? とか vbc /? とか build /? とか nmake /? とか dumpbin /? とか link /? ...アセンブル /Fa 逆アセンブル(dumpbin).....
ができます。あとはMSDN を見て下さい。

Re: DLLファイルの作成について

Posted: 2016年12月13日(火) 17:22
by あらた
>C6b14さん
ご丁寧にいろいろと情報提供してくださりありがとうございました。
C6b14 さんが書きました:cl /? とか csc /? とか vbc /? とか build /? とか nmake /? とか dumpbin /? とか link /? ...アセンブル /Fa 逆アセンブル(dumpbin).....
ができます。あとはMSDN を見て下さい。
→C6b14さんのページも拝見させて頂きましたが、いろいろできるんですね。
用途に応じて使い分けができればかなり便利に開発できそうです。
これから本体と開発コンソールの使い分けに習熟していきたいと思います。

いろいろありがとうございました!