FTDI ftd2xx.dll DllImport宣告問題 |
答題得分者是:aftcast
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
請教前輩們:
因剛跨進VC .net, 很多觀念尚未釐清, 目前在使用ftd2xx.dll發生問題, 請前輩們指導一下 情況如下: 目前能在MyForm.h中宣告 #define FT_PREFIX [DllImport("FTD2XX.dll")] FT_PREFIX FT_STATUS FT_Open(int deviceNumber, FT_HANDLE * pHandle); 並且能在按鍵事件中成功使用該函式 FT_STATUS ftStatus = FT_OK; FT_HANDLE handle; ftStatus = FT_Open(0, &handle); 但小弟想要把該DLL的functions宣告,集中在某個.h檔案中,但同樣的宣告會出現如下錯誤訊息 error C2337: 'DllImport' : 找不到屬性; 這個版本的 Visual C 不支援 請問該如何修正 謝謝 |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
印象中除了你說的這個方法外,我記得好像可以用普通方式(win32)加入廠商的 h 檔與 lib 檔就可以。但可能確定一下 compiler是用 /clr 的方式 ( clr:pure 好像不行)。
大概快2年沒搞 vc /cli 了。有點不確定。 若有空,可以試一下下。 當然,你目前用的方式是所有 .net 的正統用法。 不過, vc /cli 有特殊的能力可以混 managed 與 unmanaged code。 ===================引 用 taishyang 文 章=================== 自問自答,加上 using namespace System::Runtime::InteropServices;
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
另外補充我以前用 c++/cli 的一些感言。 其實它就像我在用 c++ builder 一樣的,也是 "小三"。 正房是 c#。 換句話說, c++/cli 的資源非常的少。你又要特別去處理 cli 特有的型別,然後再 marsalling 比如 string vs String。 還有 ^ 與 * 指標的意義不一樣… 要學的不少,資源又少。
我還特別去搞了一個程式,叫 charp to cplus,專門把網路上的一些 c# 的例子、程式,透過它來轉成 cli。 有需要的話可以找一下這個程式。 如果說不是一種堅持,說真的,就 c# 了吧。 再不然就是 mfc 。 c /cli 是小三 (無誤 不過有一個小優點,就是它與 c /cx 的語法很接近。這個 c /cx 是 native code喔, for winrt (windows runtime ,新一代的windows api)。 ^^
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
建議在 KTOP 增開個小三版好了 (大誤)
===================引 用 aftcast 文 章=================== 另外補充我以前用 c /cli 的一些感言。 其實它就像我在用 c builder 一樣的,也是 "小三"。 正房是 c#。 換句話說, c /cli 的資源非常的少。你又要特別去處理 cli 特有的型別,然後再 marsalling 比如 string vs String。 還有 ^ 與 * 指標的意義不一樣… 要學的不少,資源又少。 我還特別去搞了一個程式,叫 charp to cplus,專門把網路上的一些 c# 的例子、程式,透過它來轉成 cli。 有需要的話可以找一下這個程式。 如果說不是一種堅持,說真的,就 c# 了吧。 再不然就是 mfc 。 c /cli 是小三 (無誤 不過有一個小優點,就是它與 c /cx 的語法很接近。這個 c /cx 是 native code喔, for winrt (windows runtime ,新一代的windows api)。 ^^ |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
看來我只有小三命, AP端我只會BCB, 因為工作需要最近才接觸VC++.net (現在這邊不喜歡BCB@@)
又因之前控制周邊的function 都是用C 包成class, 相容性的關係, C#應該是無緣了 UI的部分又覺得MFC不怎麼友善, 所以只好硬著頭皮衝啦~~ ===================引 用 GrandRURU 文 章=================== 建議在 KTOP 增開個小三版好了 (大誤) ===================引 用 aftcast 文 章=================== 另外補充我以前用 c /cli 的一些感言。 其實它就像我在用 c builder 一樣的,也是 "小三"。 正房是 c#。 換句話說, c /cli 的資源非常的少。你又要特別去處理 cli 特有的型別,然後再 marsalling 比如 string vs String。 還有 ^ 與 * 指標的意義不一樣… 要學的不少,資源又少。 我還特別去搞了一個程式,叫 charp to cplus,專門把網路上的一些 c# 的例子、程式,透過它來轉成 cli。 有需要的話可以找一下這個程式。 如果說不是一種堅持,說真的,就 c# 了吧。 再不然就是 mfc 。 c /cli 是小三 (無誤 不過有一個小優點,就是它與 c /cx 的語法很接近。這個 c /cx 是 native code喔, for winrt (windows runtime ,新一代的windows api)。 ^^ |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
aftcast前輩:
原廠提供的.lib加入專案後會出現連結錯誤(sample code有提到)所以就沒再往下試了 另外您提到的charp to cplus程式有沒有連結可以提供一下^^? 我google一會似乎沒找著 3Q~~ ===================引 用 aftcast 文 章=================== 另外補充我以前用 c /cli 的一些感言。 其實它就像我在用 c builder 一樣的,也是 "小三"。 正房是 c#。 換句話說, c /cli 的資源非常的少。你又要特別去處理 cli 特有的型別,然後再 marsalling 比如 string vs String。 還有 ^ 與 * 指標的意義不一樣… 要學的不少,資源又少。 我還特別去搞了一個程式,叫 charp to cplus,專門把網路上的一些 c# 的例子、程式,透過它來轉成 cli。 有需要的話可以找一下這個程式。 如果說不是一種堅持,說真的,就 c# 了吧。 再不然就是 mfc 。 c /cli 是小三 (無誤 不過有一個小優點,就是它與 c /cx 的語法很接近。這個 c /cx 是 native code喔, for winrt (windows runtime ,新一代的windows api)。 ^^ |
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
喔? 可能我記錯了… > <
我說的那軟體在這裡: http://www.tangiblesoftwaresolutions.com/Product_Details/CSharp_to_CPlusPlus_Converter_Details.html ===================引 用 taishyang 文 章=================== aftcast前輩: 原廠提供的.lib加入專案後會出現連結錯誤(sample code有提到)所以就沒再往下試了 另外您提到的charp to cplus程式有沒有連結可以提供一下^^? 我google一會似乎沒找著 3Q~~
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
另外,剛去回憶之前的實作,於是就查到了下面的範例 : (沒錯,也是用 explicit p/invoke的方式,如你開始用的一樣)。不過這範例完整,你可以整個run一下。
http://www.ftdichip.com/Support/SoftwareExamples/CodeExamples/VC /vc_net_example.zip
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
3Q ^__^
===================引 用 aftcast 文 章=================== 喔? 可能我記錯了… > < 我說的那軟體在這裡: http://www.tangiblesoftwaresolutions.com/Product_Details/CSharp_to_CPlusPlus_Converter_Details.html ===================引 用 taishyang 文 章=================== aftcast前輩: 原廠提供的.lib加入專案後會出現連結錯誤(sample code有提到)所以就沒再往下試了 另外您提到的charp to cplus程式有沒有連結可以提供一下^^? 我google一會似乎沒找著 3Q~~ |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
aftcast前輩:
我一開始的狀況跟這個連結一模一樣 http://bbs.csdn.net/topics/300052554 後來有找到你提供的這個範例,但我用VS2013沒辦法開啟,專案升級會有問題RUN不起來@@ 最後參考這範例將以前的ftd2xx.h檔的 FTD2XX_API FT_STATUS WINAPI FT_XXXXXX 改成範例的形式, 但出現一開始提到的錯誤訊息, 最終加上 using namespace System::Runtime::InteropServices; 突然就看見曙光了^^ ===================引 用 aftcast 文 章=================== 另外,剛去回憶之前的實作,於是就查到了下面的範例 : (沒錯,也是用 explicit p/invoke的方式,如你開始用的一樣)。不過這範例完整,你可以整個run一下。 http://www.ftdichip.com/Support/SoftwareExamples/CodeExamples/VC /vc_net_example.zip |
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
看了你提到的錯誤訊息後,我剛剛親自來試了一下,順便回憶之前所學。發現稍早和你說的應該是沒錯的。可以使用"一般"的 h 檔 (如mfc用的)。重點在你應該忘了先 include windows.h
此外,稍早我是有個小地方記錯,就是要用這種 「implicit p invoke」的前題是compiler不能選「安全 MSIL Common Language Runtime 支援 (/clr:safe)」這個。專案預設的/clr:pure是ok的。而「/clr」更是沒問題。(我常用這個)。 這種C Interop (Implicit PInvoke)的方式是 vc 特有的,不用可惜。當小三總也要有比人強一點的地方,是吧?! ^^ 。有時間的話你再參考一下。 以下附我成功的圖。若沒加入 windows header,情形就會如你之前看的錯誤。 ===================引 用 taishyang 文 章=================== aftcast前輩: 我一開始的狀況跟這個連結一模一樣 http://bbs.csdn.net/topics/300052554 後來有找到你提供的這個範例,但我用VS2013沒辦法開啟,專案升級會有問題RUN不起來@@ 最後參考這範例將以前的ftd2xx.h檔的 FTD2XX_API FT_STATUS WINAPI FT_XXXXXX 改成範例的形式, 但出現一開始提到的錯誤訊息, 最終加上 using namespace System::Runtime::InteropServices; 突然就看見曙光了^^
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |