成人女人看片免费视频放人_亚洲色精品三区二区一区_欧美亚洲国产精品久久_成人无遮挡裸免费视频在线观看_97SE亚洲国产综合在线_精品久久久久久777米琪桃花_天天躁日日躁很很很躁_色噜噜狠狠一区二区三区果冻_国产免费久久精品国产传媒_67194成是人免费无码

切換到寬版
  • 廣告投放
  • 稿件投遞
  • 繁體中文
  • 如何編譯用戶自定義DLL

    作者:Zemax China 來源:投稿 時間:2020-05-20 17:08 閱讀:14131 [投稿]
    本文將介紹什么是用戶自定義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)

    黔东| 沅江市| 普安县| 晋中市| 抚远县| 且末县| 庆城县| 山西省| 武胜县| 上饶县| 蓝田县| 蛟河市| 宜宾市| 鞍山市| 祁连县| 大石桥市| 准格尔旗| 苏尼特左旗| 余姚市| 邵东县| 辰溪县| 安新县| 新安县| 木里| 武宁县| 白朗县| 达尔| 淳安县| 贡山| 景宁| 永济市| 阿拉尔市| 桐柏县| 焦作市| 安西县| 县级市| 西青区| 曲阜市| 博野县| 达拉特旗| 宽城|