DLL cov ntaub ntawv yog cov ntaub ntawv txuas nrog lub tsev qiv ntawv txuas nrog sau thiab tswj nrog C ++. DLLs sib koom, khaws cia, thiab txuag koj cov cai yooj yim. Cov wikiHow no yuav qhia koj li cas los tsim cov ntaub ntawv DLL nrog Visual Studio, Windows application, lossis Visual Studio for Mac. Nco ntsoov tias koj muaj "Desktop Development with C ++" kos thaum koj teeb tsa. Yog tias koj twb muaj Visual Studio tab sis tsis tau khij lub npov ntawd, koj tuaj yeem khiav lub installer dua kom paub tseeb tias koj ua.
Cov kauj ruam
Kauj Ruam 1. Qhib Visual Studio
Koj tuaj yeem pom qhov no hauv koj li Start Menu lossis Applications folder. Txij li DLL yog lub tsev qiv ntawv cov ntaub ntawv, nws tsuas yog ib qho ntawm qhov haujlwm, thiab feem ntau yuav tsum muaj daim ntawv thov nkag nrog nkag mus rau nws.
- Koj tuaj yeem tau txais Visual Studio rau Windows ntawm no:
- Visual Studio rau Mac tuaj yeem rub tawm ntawm no:
- Cov wikiHow no yuav siv tus lej muab los ntawm Microsoft los piav qhia yuav tsim DLL cov ntaub ntawv li cas.
Kauj Ruam 2. Nyem Cov Ntaub Ntawv
Koj yuav pom qhov no nyob ntawm qhov chaw ua haujlwm (Windows) lossis nyob saum koj lub vijtsam (Macs).
Kauj Ruam 3. Nyem Tshiab thiab Qhov project.
Lub thawv "Tsim Txoj Haujlwm Tshiab" yuav tshwm sim.
Kauj Ruam 4. Teev cov kev xaiv rau Hom Lus, Platform, thiab Hom Haujlwm
Cov no yuav lim cov hom phiaj ntawm qhov haujlwm zoo li cas.
Nyem Lus kom tau txais cov ntawv qhia zaub mov nco thiab nyem C ++.
Kauj Ruam 5. Nyem Platform kom tau txais cov ntawv qhia zaub mov nco thiab nyem Qhov rai.
Kauj Ruam 6. Nyem Project Hom kom tau txais cov ntawv qhia zaub mov nco thiab nyem Tsev qiv ntawv.
Kauj Ruam 7. Nyem Dynamic-link Library (DLL)
Koj qhov kev xaiv yuav hais txog xiav. Nyem Tom ntej no mus ntxiv
Kauj Ruam 8. Ntaus lub npe hauv Lub Npe Lub Npe rau txoj haujlwm
Piv txwv li, ntaus “MathLibrary” hauv lub npov rau lub npe piv txwv.
Kauj ruam 9. Nyem Tsim
DLL qhov project tau tsim.
Kauj Ruam 10. Ntxiv cov ntawv header rau DLL
Koj tuaj yeem ua qhov no los ntawm txhaj "Ntxiv Yam Khoom Tshiab" los ntawm "Project" hauv cov ntawv qhia zaub mov.
- Xaiv Pom C ++ los ntawm cov ntawv qhia zaub mov sab laug ntawm lub dialog box.
- Xaiv Cov ntaub ntawv header (.h) los ntawm qhov chaw nruab nrab ntawm lub thawv sib tham.
- Ntaus lub npe ua "MathLibrary.h" hauv lub npe hauv qab cov ntawv xaiv.
- Nyem Ntxiv los tsim cov ntaub ntawv header dawb.
Kauj Ruam 11. Ntaus cov cai hauv qab no rau hauv cov ntaub ntawv header dawb
// MathLibrary.h - Muaj cov lus tshaj tawm ntawm kev ua lej #pragma ib zaug #ifdef MATHLIBRARY_EXPORTS #define MATHLIBRARY_API _declspec (dllexport) #else #define MATHLIBRARY_API _declspec (dllimport) #piav qhia qhov twg n) yog {n = 0, a // {n = 1, b // {n> 1, F (n-2) + F (n-1) // rau qee qhov pib qhov tseem ceeb a thiab b. // Yog hais tias cov ntu tau pib F (0) = 1, F (1) = 1, // ces qhov kev sib raug zoo no ua rau muaj kev paub Fibonacci // ntu: 1, 1, 2, 3, 5, 8, 13, 21, 34,… // Pib Fibonacci sib txheeb ua ntu zus // xws li F (0) = a, F (1) = b. // Txoj haujlwm no yuav tsum raug hu ua ntej lwm qhov haujlwm. extern "C" MATHLIBRARY_API tsis muaj dab tsi fibonacci_init (const unsigned ntev ntev a, const unsigned ntev ntev b); // Ua tus nqi tom ntej hauv ntu. // Rov qab muaj tseeb ntawm kev ua tiav thiab hloov kho tus nqi tam sim no thiab ntsuas; // cuav ntawm kev hla, tawm tus nqi tam sim no thiab ntsuas tsis hloov pauv. extern "C" MATHLIBRARY_API bool fibonacci_next (); // Tau txais tus nqi tam sim no hauv ntu. extern "C" MATHLIBRARY_API unsigned ntev ntev fibonacci_current (); // Tau txais txoj haujlwm ntawm tus nqi tam sim no hauv ntu. extern "C" MATHLIBRARY_API unsigned fibonacci_index ();
Kauj Ruam 12. Ntxiv CPP cov ntaub ntawv rau DLL
Koj tuaj yeem ua qhov no los ntawm nyem Ntxiv Cov Khoom Tshiab los ntawm "Project" hauv cov ntawv qhia zaub mov.
- Xaiv "Visual C ++" los ntawm cov ntawv qhia zaub mov sab laug ntawm lub npov lus.
- Xaiv "C ++ Cov Ntaub Ntawv (.cpp)" los ntawm nruab nrab ntawm lub npov lus sib tham.
- Ntaus lub npe ua "MathLibrary.cpp" hauv lub npe teb hauv qab cov ntawv xaiv.
- Nyem Ntxiv los tsim cov ntawv khoob.
Kauj Ruam 13. Ntaus cov cai hauv qab no rau hauv daim ntawv uas tsis muaj dab tsi
// MathLibrary.cpp: Txhais cov haujlwm xa tawm rau DLL. #include "stdafx.h" // siv pch.h hauv Visual Studio 2019 #include #include #include "MathLibrary.h" // DLL sab hauv lub xeev hloov pauv: zoo li tsis tau kos npe ntev ntev dhau los_; // Tus nqi yav dhau los, yog tias muaj qhov tsis zoo li qub tsis tau kos npe ntev ntev tam sim no_; // Tam sim no ntu ntu tus nqi zoo li qub unsigned index_; // Tam sim no seq txoj hauj lwm // Pib ua Fibonacci sib txheeb sib xws // xws li F (0) = a, F (1) = b. // Txoj haujlwm no yuav tsum raug hu ua ntej lwm qhov haujlwm. tsis muaj dab tsi fibonacci_init (const unsigned ntev ntev a, const unsigned ntev ntev b) {index_ = 0; current_ = ua; ua ntej_ = b; // saib cov ntaub ntawv tshwj xeeb thaum pib ua haujlwm} // Ua tus nqi tom ntej hauv ntu // Rov qab muaj tseeb ntawm kev ua tiav, cuav ntawm kev txeej. bool fibonacci_next () {// xyuas seb peb puas yuav dhau los lossis txoj haujlwm yog ((ULLONG_MAX - yav dhau los <<tam sim no)) || (UINT_MAX == index_)) {rov tsis tseeb; } // Cov ntaub ntawv tshwj xeeb thaum ntsuas == 0, tsuas yog xa rov qab b tus nqi yog (index_> 0) {// txwv tsis pub, suav cov lej sib law liag tom ntej ua ntej + += tam sim no; } std:: swap (tam sim no, yav dhau los_); ++ index_; rov muaj tseeb; } // Tau txais tus nqi tam sim no hauv ntu. unsigned ntev ntev fibonacci_current () {xa tam sim no_; } // Tau txais txoj haujlwm ntsuas tam sim no hauv ntu. unsigned fibonacci_index () {rov qab index_; }
Kauj Ruam 14. Nyem Tsim hauv cov ntawv qhia zaub mov
Koj yuav pom qhov no los ntawm qhov chaw ua haujlwm (Windows) lossis nyob saum koj lub vijtsam (Macs).
Kauj Ruam 15. Nyem Tsim Kho
Tom qab koj nyem qhov ntawd, koj yuav tsum pom cov ntawv zoo ib yam li qhov no:
1> ------ Tsim pib: Project: MathLibrary, Kev teeb tsa: Debug Win32 ------ 1> MathLibrary.cpp 1> dllmain.cpp 1> Tsim Code… 1> Tsim tsev qiv ntawv C: / Cov neeg siv npe / Source / Repos / MathLibrary / Debug / MathLibrary.lib thiab object C: / Users / username / Source / Repos / MathLibrary / Debug / MathLibrary.exp 1> MathLibrary.vcxproj -> C: / Users / username / Source / Repos / MathLibrary / Debug / MathLibrary.dll 1> MathLibrary.vcxproj -> C: / Users / username / Source / Repos / MathLibrary / Debug / MathLibrary.pdb (Partial PDB) ========== Tsim: 1 ua tiav, 0 ua tsis tiav, 0 hloov tshiab, 0 hla ==========