C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: 「error LNK2001: 外部シンボル 未解決です」を


(過去ログ 69 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■39989 / inTopicNo.1)  「error LNK2001: 外部シンボル 未解決です」を
  
□投稿者/ たけちゃん (1回)-(2009/08/19(Wed) 12:13:16)

分類:[C/C++] 

C++初心者です。
現在、VC++6.0にて作成したアプリケーションより、xxxDll.lib内の複数メソッド参照しているのでが、特定のメソッドだけに対して、
リンク時に「error LNK2001: 外部シンボル "_xxxxxxxxx@20" は未解決です」が発生してしまいます。

ちなみに、別のアプリケーションから自作のxxxDll.libを同じように参照した場合は上記エラーは発生しません。

プロジェクトの設定に問題があるのでしょうか?見当がつかず、大変困っております。
御存知の方がおりましたら御回答をお願い致します。

引用返信 編集キー/
■39992 / inTopicNo.2)  Re[1]: 「error LNK2001: 外部シンボル 未解決です」を
□投稿者/ オショウ (310回)-(2009/08/19(Wed) 12:26:54)
2009/08/19(Wed) 12:27:10 編集(投稿者)

No39989 (たけちゃん さん) に返信
> C++初心者です。
> 現在、VC++6.0にて作成したアプリケーションより、xxxDll.lib内の複数メソッド参照しているのでが、特定のメソッドだけに対して、
> リンク時に「error LNK2001: 外部シンボル "_xxxxxxxxx@20" は未解決です」が発生してしまいます。
>
> ちなみに、別のアプリケーションから自作のxxxDll.libを同じように参照した場合は上記エラーは発生しません。
>
> プロジェクトの設定に問題があるのでしょうか?見当がつかず、大変困っております。
> 御存知の方がおりましたら御回答をお願い致します。

  これだけでは、なんとも・・・
  もしかしたらLoadLibraryして、GetProcAddressでその関数のアドレス取得して
  動作させているとか?

  その問題ない方のプロジェクトでは、実際にどのようになっているのかコード
  やコンパイルスイッチ等確認されましたか?

以上。
引用返信 編集キー/
■39996 / inTopicNo.3)  Re[2]: 「error LNK2001: 外部シンボル 未解決です」を
□投稿者/ たけちゃん (3回)-(2009/08/19(Wed) 13:08:29)
No39992 (オショウ さん) に返信
> 2009/08/19(Wed) 12:27:10 編集(投稿者)

すいません。情報が不足していました。
エラー:DmaDriverTestDlg.obj : error LNK2001: 外部シンボル "_EngineEmulatorDmaInfoSet@20" は未解決です

リンクが発生する実装: ret = EngineEmulatorDmaInfoSet(handleMemory, dmaInfo);
        if(ret!=0){
    return ret;
       }

リンクが発生しない実装:ret = EngineEmulatorDmaInfoSet(cDataManager.handleMemory, cDataManager.dmaInfo);
if(ret!=E_OK){
return ret;
}

・C/C++プリプロセッサの定義
リンクエラー発生する方 :WIN32,_DEBUG,_WINDOWS,_AFXDLL,_MBCS
リンクエラー発生しない方:_DEBUG,WIN32,_WINDOWS,_AFXDLL,_MBCS,NEW_FRAMEWORK

・C/C++ プロジェクトオプション
リンクエラー発生する方:
/nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Fp"Debug/DmaDriverTest.pch" /Yu"stdafx.h" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c
リンクエラー発生しない方:
/nologo /Zp4 /MDd /W3 /Gm /GR /GX /ZI /Od /Op /I "..\engineemulator" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /D "NEW_FRAMEWORK" /Fr"Debug/" /Fo"Debug/" /Fd"Debug/" /FD /GZ /Zm150 /c


・リンク オブジェクト/ライブラリモジュール
リンクエラー発生する方 :EngineEmulatorDll.lib setupapi.lib ws2_32.lib
リンクエラー発生しない方:EngineEmulatorDll.lib setupapi.lib ws2_32.lib

・リンク プロジェクトオプション
リンクエラー発生する方 :EngineEmulatorDll.lib setupapi.lib ws2_32.lib /nologo /subsystem:windows /incremental:yes /pdb:"Debug/DmaDriverTest.pdb" /debug /machine:I386
リンクエラー発生しない方:EngineEmulatorDll.lib setupapi.lib ws2_32.lib /nologo /subsystem:windows /incremental:yes /pdb:"Debug/EngineEmulator.pdb" /debug /machine:I386 /out:"Debug/EngineEmulator.exe" /pdbtype:sept

宜しくお願い致します。

> ■No39989 (たけちゃん さん) に返信
>>C++初心者です。
>>現在、VC++6.0にて作成したアプリケーションより、xxxDll.lib内の複数メソッド参照しているのでが、特定のメソッドだけに対して、
>>リンク時に「error LNK2001: 外部シンボル "_xxxxxxxxx@20" は未解決です」が発生してしまいます。
>>
>>ちなみに、別のアプリケーションから自作のxxxDll.libを同じように参照した場合は上記エラーは発生しません。
>>
>>プロジェクトの設定に問題があるのでしょうか?見当がつかず、大変困っております。
>>御存知の方がおりましたら御回答をお願い致します。
>
>   これだけでは、なんとも・・・
>   もしかしたらLoadLibraryして、GetProcAddressでその関数のアドレス取得して
>   動作させているとか?
>
>   その問題ない方のプロジェクトでは、実際にどのようになっているのかコード
>   やコンパイルスイッチ等確認されましたか?
>
> 以上。
引用返信 編集キー/
■40009 / inTopicNo.4)  Re[3]: 「error LNK2001: 外部シンボル 未解決です」を
□投稿者/ 774RR (377回)-(2009/08/19(Wed) 14:18:20)
extern "C" の囲いミスなのではないかと妄想してみる年頃
引用返信 編集キー/
■40012 / inTopicNo.5)  Re[4]: 「error LNK2001: 外部シンボル 未解決です」を
□投稿者/ 774RR (378回)-(2009/08/19(Wed) 14:36:37)
とりあえず参考リンク
http://hpcgi1.nifty.com/MADIA/Vcbbs/wwwlng.cgi?print+200908/09080017.txt

引用返信 編集キー/
■40042 / inTopicNo.6)  Re[5]: 「error LNK2001: 外部シンボル 未解決です」を
□投稿者/ たけちゃん (4回)-(2009/08/19(Wed) 17:21:43)
No40012 (774RR さん) に返信
> とりあえず参考リンク
> http://hpcgi1.nifty.com/MADIA/Vcbbs/wwwlng.cgi?print+200908/09080017.txt
>

プロジェクト設定のC/C++のカテゴリ設定で構造体メンバのアライメントを8バイト*から4バイトに変更することで解決しました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -