2013-07-25 5 views
7

Matlab R2012aを使用して、いくつかのmatlab関数を.net DLLファイルにコンパイルしました。すべてが必要なように動作しています。私はWPF/C#.net 4.5をWindows 7の64bitで使用しています。私のプログラムは大丈夫です。Windows 8のMatlab Builder NE/MCR

しかし、私たちは現在、Windows 8 proでプログラムを転送しテストしています。実行時に問題があります.DCRファイルを実行するためにMCR R2012aを使用しています。 win8ではクラスや関数をロードできず、プログラムがクラッシュします。

誰もこの問題を遭遇しましたか? Matlab R2013aを使用して関数をコンパイルすると役立ちますか?

+0

プログラムがクラッシュしたときの動作の一部を知ることは役に立ちます。特有のエラー、特定の終了コード、イベントログ内の何かなどのリード? – SeanKilleen

+0

はい。エラーがあります: Managed(v4.0.30319) 'が-1073741819(0xc0000005)というコードで終了しました。'アクセス違反 'です。 – Gilad

+0

エラーの性質上、アプリケーションを実行するアカウントに、アプリケーションが使用するフォルダへのフルアクセス権があることを確認していますか?私はまた、プログラムを右クリックし、 "管理者として実行"を選択すると役立つでしょう。 Win8では、その文脈で何かをしようとすると、やや敏感なUACシステムが動くかもしれません。あなたがそれらのことを試したかどうか確認してください。 – SeanKilleen

答えて

11

窓8とMatlabの問題を解決するには、アセンブリファイルに

[assembly: MathWorks.MATLAB.NET.Utility.MWMCROption("-nojit")] 

を追加することです。

これがなぜ機能するのかわかりません。 nojit-バイナリファイルを作成するコンパイラをただちにコンパイルする必要はありません。

ただし、これを追加しました。それは窓8 x64でも同様に働いた。同じMCRで

0

私がMCRで持っていた問題のほとんどは、PATH変数の間違った値と関係していました。これは、コンピュータに複数のMCRをインストールした場合、または1つだけインストールした場合でも発生する可能性があります。アクセス違反エラーが発生したので、システムでMCRのDLLが見つかると思いますが、間違ったものが見つかっています(たとえば、64ビットではなく32ビット)。 PATH環境変数varを慎重に確認し、MCR dllの正しい場所を指していることを確認してください。

+0

私はこの問題を認識していますが、これはWindows 7 x64ではうまく動作していますが、win 8 x64では同じ設定では動作しません。同じMCR R2012a X64。 – Gilad

+0

matlabが初期化されているとき(生成されたクラスのインスタンスを最初に作成するとき)、またはメソッドを呼び出すときだけ失敗するかどうかはすぐには失われますか? –

+0

最初にクラスをロードすると失敗します。 – Gilad