如何編譯用戶自定義DLL
本文將介紹什么是用戶自定義DLL以及如何在Visual Studio中編譯用戶自定義DLL。本教程是基于Visual Studio Community 2017 version 15.9而創(chuàng)建的,但這些步驟在更早的版本中也適用,版本間變化指出均有記載。本文也會討論其他的編譯器。
為修正這個問題,直接把 {Zemax}DLLSurfaces下面的“usersurf.h”復制并粘貼到source code同一個路徑下,然后右鍵點擊“Header Files”來載入頭文件并導入現有的代碼中。 ![]() 當頭文件載入到正確的路徑后,紅色下劃線應該就不再出現了。如果有任何內容未被讀出,那么該DLL可能不能編譯。即使編譯了,也未必能正常運行。 使用C++編譯器 絕大部分Zemax自帶的案例文件都是用C語言寫的。由于Visual Studio是個C++編譯器,這意味著必須對代碼進行一些修改來正確地編譯它們。 如果還沒添加。那么在代碼開頭的初始化功能區(qū)放入“extern “C” {}”。同時確保把“BOOL WINAPI DllMain”這一行注釋掉。 在C++編譯器里,程序(function)名往往會在后臺被修改,以使得每個程序都有其唯一的標識。如果程序名變化了,那么OpticStudio會無法運行該DLL,因為OpticStudio會尋找具體的名稱(例如:UserDefinedSurface、UserObjectDefinition等)采用上述改變可以強制編譯器保持原來C代碼里的程序名且忽略任何可能造成的錯誤。 同樣地,可能也會需要無視由于C和C++的細微不同造成的警告,例如: C4996: ‘srtcpy’: This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. 如果這是編譯中唯一遇到的警告,那么以下的代碼可以繞過這個問題: #pragma warning ( disable : 4996 ) 這行代碼會允許編譯器提供特定于電腦或者操作系統(tǒng)的功能,同時保持C和C++語言上大體的兼容性。 Rebuild Solution 選擇Build…Rebuild Solution來編譯你的代碼,或者直接按鍵盤“Ctrl+F5”。編譯成功后會輸出以下內容: |

1.行業(yè)新聞、市場分析。 2.新品新技術(最新研發(fā)出來的產品技術介紹,包括產品性能參數、作用、應用領域及圖片); 3.解決方案/專業(yè)論文(針對問題及需求,提出一個解決問題的執(zhí)行方案); 4.技術文章、白皮書,光學軟件運用技術(光電行業(yè)內技術文檔);
如果想要將你的內容出現在這里,歡迎聯系我們,投稿郵箱:service@www.whymw.com

-
小小白啊:學習了(2020-09-01)

-
顧鵬翔:學習了(2020-06-12)

-
rige:學習了。。。。。(2020-05-30)

-
jialunzhang:我在生成時遇見“無法啟動.dll”文件的情況,請問這是為什么呢(2020-05-30)

-
xiebin525:學習了,謝謝(2020-05-25)





