0

次の問題があります。64ビットバージョンのmatlab2011bがあります。DLLからいくつかの関数を呼び出す必要があります。これは、しばらく前にVisualStudio2010のprofバージョンで機能していました。

今度はエクスプレスバージョンで実行したいと思います。そのため、Visual Studio C ++2010ExpressとWinSDK7.1をインストールしました。ここで、matlabにコマンドを与えmex -setup、VC++コンパイラを選択します。わかった!

dll自体をロードしたい場合、loadlibrary大量のエラーが発生します。次のようなもの:libFramework_thunk_pcwin64の構築に失敗しました。コンパイラの出力は次のとおりです。

cl -I"C:\MATLAB\R2011b\extern\include"   /W3  /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0  /nologo  -I"U:\Framework\Framework\so" -I"U:\Framework\Framework\so" "libFramework_thunk_pcwin64.c" -LD -Fe"libFramework_thunk_pcwin64.dll" libFramework_thunk_pcwin64.c
Bibliothek "libFramework_thunk_pcwin64.lib" und Objekt "libFramework_thunk_pcwin64.exp" werden erstellt.
LIBCMT.lib(dllcrt0.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__GetCurrentThreadId@0" in Funktion "__CRT_INIT@12".
LIBCMT.lib(tidtable.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__GetCurrentThreadId@0".
LIBCMT.lib(gs_support.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__GetCurrentThreadId@0".
LIBCMT.lib(onexit.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__DecodePointer@4".
LIBCMT.lib(crtmboxw.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__DecodePointer@4" in Funktion "___crtMessageBoxW".

<snip>

libFramework_thunk_pcwin64.dll : fatal error LNK1120: 65 nicht aufgelöste externe Verweise.

Error in load_Framework (line 4)
    loadlibrary 'libFramework' 'Shaddower_C.h'

残念ながら、私はドイツ語のソフトウェアを使用しているため、これらのエラーはドイツ語で表示されます。(大雑把に)翻訳すると、さまざまな関数に解決できない外部シンボルへのリンクがあります。言語を英語に変更する方法をご存知の場合は、正確な出力を提供できます。

グーグルで調べたところ、試したすべての関数が標準ライブラリからのものであることがわかりました。rundll32.dllの一部を見つけましたが、他のリンクもあるかもしれません。

実際、コンパイラはデフォルトのWindows dll(またはSDK)にアクセスできないようです。

ここで何が問題になっているのか教えていただけますか?

PS:ドイツ語を理解している人は、http://www.gomatlab.de/viewtopic,p,91154.html#91154を参照してください。純粋なmatlabフォーラムの拳に投稿しましたが、VC++の問題だと思うのでここにも投稿しました。 。

4

1 に答える 1

0

VS2010再頒布可能パッケージに関するいくつかのパッケージがインストールされていることがわかりました。それらとインストールされたVS2010とSDKを削除しました。SDKを再インストールした後、すべてが正しくなりました。

ありがとう

于 2012-05-18T10:51:31.517 に答える