[問題] vc2008呼叫Matlab的設定問題已回收
前幾天有網友有po心得,但他用的是vc6.0,我用的是
Visual Studio 2008 64bits,設定上一直搞不定,希望
有經驗的網友指點一下,我的OS是 Vista 64 bits,Matlab
版本是 R2009a,目前已經做了下列的設定:
在Visual Studio內:
工具/選項/專案和方案/VC++目錄 切換到 "Include 檔案",新增:
C:\Program Files\MATLAB\R2009a\extern\include
C:\Program Files\MATLAB\R2009a\extern\include\win64
C:\Program Files\MATLAB\R2009a\simulink\include
工具/選項/專案和方案/VC++目錄 切換到 "程式庫檔",新增:
C:\Program Files\MATLAB\R2009a\extern\lib\win32\microsoft
C:\Program Files\MATLAB\R2009a\extern\lib\win64\microsoft
C:\Program Files\MATLAB\R2009a\lib\win64
("Win32" 與 "x64" 兩個平台都有設定)
專案/屬性/組態屬性/連結器/輸入/其他相依性 加入:
Libmx.lib libmex.lib libeng.lib libmat.lib
連結器/命令列 加入:
Libmx.lib libmex.lib libeng.lib libmat.lib
("Win32" 與 "x64" 兩個平台的debug與release都有設定)
環境變數/系統變數/PATH 加入:
C:\Program Files\MATLAB\R2009a\bin\win64\
再設定"環境變數/使用者變數 加入:
C:\Program Files\MATLAB\R2009a
在Windows Form專案的Form1.h內,加入:
#include "engine.h" //到這裡是ok的,有include進來
Engine *m_pEngine; //到這裡沒有錯誤,但有警告,如下:
warning LNK4248: 無法解析的 typeref 語彙基元 (0100004D)
(對 'engine' 而言),映像可能無法執行
m_pEngine = engOpen(NULL); //到這裡就有3個錯誤了,如下:
error LNK2031: 無法對 "extern "C" struct engine * __clrcall
engOpen(char const *)" (?engOpen@@$$J0YMPEAUengine@@PEBD@Z)
產生 p/invoke,中繼資料中遺漏呼叫慣例
error LNK2020: 無法解析的語彙基元 (0A00001E) "extern "C"
struct engine * __clrcall engOpen(char const *)" (?engOpen
@@$$J0YMPEAUengine@@PEBD@Z)
error LNK2001: 無法解析的外部符號 "extern "C" struct engine
* __clrcall engOpen(char const *)" (?engOpen@@$$J0YMPEAU
engine@@PEBD@Z)
這是代表還有哪裡沒設定好嗎???
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 112.104.104.101
※ 編輯: bbbbbbjeff 來自: 112.104.104.101 (02/10 11:35)
→
02/10 19:33, , 1F
02/10 19:33, 1F