FC2ブログ

NetBeans(MinGW) C++でDLL作成

emotionサイトトップ > NetBeans >NetBeans(MinGW) C++でDLL作成

NetBeansで作成したDllを使用すると、Dll内の関数が見つかりませんってエラーが出てお手上げです。
64bitでビルドして32bitのソフトで使用したとかじゃありませんよ
(いえ・・・最初64bitアーキテクチャのMinGWのコンパイラでビルドしてしまいましたけど、実行時のエラーコードで気がついて32bitのMinGWに変更してビルドし直しましたw)

Dllの中身はチェック出来ないので、ここで躓くとハマってお手上げに・・・
と、思ったら、

Dependency Walker
http://www.dependencywalker.com/

というツールが有りましたw
dependencywalker.png
便利ですね~dllファイルを開くと、dll内の関数名が表示されていました。
それが分かった所でデバッグが出来ないdllの不具合を見つけるのはやっぱりハマります・・・
関数名が壊れている場合は.defファイルを作成して、プロジェクト設定のリンカ―入力のモジュール定義ファイルに作成したdefファイルを指定してビルドすると解決するんですけどね。
違う開発環境で作成したソフトでdllを参照するとうまくエクスポートされていない時があるんですよね。

・・・やっぱり大人しくVisualStudioでビルドしようかな~w
ライセンス認証済みのPCが1台だけ残っているしw

――追記―――
解決しましたw
dllの関数名が壊れていました。
壊れていたというか、関数名の後に"@x"が付け加えられていました。引数無し関数には@0が、合計16byteの引数の関数には@16が付け加えられていました。
VisualStudioで作成したdllで、__declspec(dllexport) __stdcallを付けて更にdefファイルを作成してリンカー入力に指定してビルドしたdllは、関数名の最後に"@x"は付いていませんでした。

NetBeansでdefファイルをリンカー入力に指定したら済む話じゃん!!
でもプロジェクト設定にそんな設定はありません。
それっぽい名前のものはありましたが、ダメでしたw
netbeans_dll1.png
なので、gccオプションを使う事にしました。

-shared XXXX.def


を追加すれば良いだけですが、
"コンパイル行"の"追加のオプション"にdefファイル名を指定するだけで、勝手に-sharedオプションが付くみたいです。
ちなみに作成してdefファイルは直接ソースコードと同じフォルダに置きました。
NetBeans上ではdefファイルは指定出来ないので、直接フォルダに置きます。

作成し直したdllファイルをチェックすると
netbeans_dll2.png
"@x"の無い関数が作成されました。
"@x"が付いた関数も作成されてしまっていますが、とりあえず他ソフトから参照出来るようになりました。
"@x"が付いた関数は要らないので、ちゃんとするにはもうちょっと調べる必要がありますが、それはまた後日にw
関連記事

スポンサーリンク
おススメ

ローエンドGPUですが4K対応です。 ロープロ対応でTDP30Wなので電源容量の少ないスリムPC向けです。GTX750Tiの新品が入手困難になっているので、ロープロ対応でGTX750Tiに近い性能が必要な人はGT1030がお勧めです。ただNVENC非対応なのでハードウェアエンコードする人向きではありません。

今から購入するならGTX1050Tiがオススメです消費電力はGTX750Tiと変わりません(TDP:75W)。メモリも4Gに増えています。


UE4エディターを使うなら消費電力の小さいGTX750Tiがオススメです(TDP:75W)。玄人志向のGTX750Tiならロープロ対応で消費電力も少なめ(TDP:60W)です。メモリは2Gです。
ただGTX750Tiの在庫が減少した為か、750Tiの価格が上昇しているので新しい1050Tiの方が安く買えます。


UE4とゲーム開発の勉強に最適です。本書とは別にPDFファイルと動画での解説があります。 バンダイナムコ社の方々がゲーム制作現場のノウハウを交えながらの解説されている為読み応えがありますし、内容も非常に分かりやすいです。唯一残念なのは、索引が無い事です。


UE4を全体的に触りだけ紹介されています。ブループリントはレベルブループリントでの解説だけの為、実際のゲーム開発現場での効率性等は一切無視された内容です。 恐らくクラスブループリントの紹介は続編で紹介していると思います。 上記のバンダイナムコ社の方々が作成した書籍の方が内容が何倍も濃く、実践向けの内容です。


動画編集・エフェクト追加に最適なソフトウェア
このCS6は全面クラウド化される前のパッケージなので、月額使用料は発生しません。

Production Premiumに含まれる単体製品
・Photoshop CS6 Extended
・Illustrator CS6
・Flash Professional CS6
・Premiere Pro CS6
・After Effects CS6
・Audition CS6
・SpeedGrade CS6
・Prelude CS6
・Encore CS6
Amazonで何度か商品閲覧していると割引クーポンがメールで送られて来ます



バージョンによって対応するGPUが異なるので
Adobe 必要システム構成で確認した方がいいです。CS6でQuadroではなくGeforceを使用する場合、対応するGPUは限られます(裏ワザで対応していないGPUを認識させる事は出来ますがおススメしません)。大人しくQuadroを購入した方が無難ですw

Quadroの性能比較は
nvidiaのサイトで確認出来ます。
ムービー制作の強力なツール
AfterEffectsの勉強にどうぞ。

タイムラインがキーフレームで埋め尽くされている人はエクスプレッションで作業効率UPしましょう。

無料の高性能3DCGツールのマニュアル。少し古いバーション用マニュアルなので最新版と差異が多少ありますが、基本的な操作は殆ど変わってないので、古いVerのマニュアルでも大丈夫です。
カウンター
リンク
Unreal Engine
UE4_logo.png

無料化したゲームエンジンです。ミドルレンジクラスのGPUが必須ですが、GTX750Tiでも軽快に動作します。
ueHow
Blender
blenderlogo.png

無料の3DCGツールです。他3DCGツールに使い慣れていると初めは操作性に苦戦しませすが、すぐに慣れます。無料でありながら高性能なので個人レベルで使用するならこれで十分です。
80Level
ゲーム制作の役に立つHow toが掲載されています。
THIEF TheGraceProject
title_blog.jpg

Thiefシリーズ日本語攻略サイト
AEP PROJECT
AEP.png

AfterEffectsUsersCommunity。色々と勉強になります。

BakaAfter
BA.png

神の領域に達した人がAdobeAfterEffectsを使うとこうなりますw

Animeの道具箱
datool.png
AfterEffectsのエクスプレッションやスクリプトについて非常に分かり易くまとめられています。

MMD配布サイト
VPVP.jpg

カメラ情報をAfterEffectsへ書き出すスクリプトや、Kinectと連携出来たりして何気に高機能なフリーソフトです。

Steam
steam.png
Valve Corporationが運営しているプラットフォームで、PCゲームをダウンロード購入出来ます。 不定期ながらだいたい四半期毎と10月の米国感謝祭と年末に大幅割引セールが行われるので、セール中に購入するのがおススメ。
カテゴリ
OS (5)
Adobe (8)
Web (5)
CPU (4)
GPU (10)
HDD (12)
GA2 (2)
PS3 (11)
GTA5 (18)
検索フォーム
最新記事
RSSリンクの表示