Abstract
Dynamic-link libraries are mainly used to extend the functionalities of the applications, decrease the use of memory, and disk space since it allows the reuse of code and procedures, sharing their access between multiple processes, applications, threads, or services. In this work, the coding of dynamic-link libraries and their generation under different calling conventions (stdcall, cdecl, and fastcall) are presented. The entire process is focused on 32-bits Windows operating systems, with TDM-GCC like the compiler and CodeLite like the IDE.Compared to using 64-bit libraries, there are many implementation and usage issues with 32-bit libraries, issues that this study address. An experimental result is presented in which a dynamic link library is created that is imported and used to give access to the data obtained from a RPLIDAR A1M8-R2 radar. The entire process of generating and using libraries in programming languages C, C++, Java, Python, C#, and VisualBasic is documented. The experimental result was carried out using Visual C++, Matlab 2015B, Unity 5.6.7f1, and Python.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Hurd, C.C.: Early computers at IBM. Annal Hist. Comput. 3(2), 163–182 (1981)
Ryckman, G.F.: 17. the IBM 701 computer at the general motors research laboratories. Annals Hist. Comput. 5(2), 210–212 (1983)
Walsh, J.E., Redmon, W.: Method and system for dynamic-link library, December 1994. https://patentimages.storage.googleapis.com/5c/6c/86/c7f62b3fb9b181/US5375241.pdf
Corporation, M.: What is a DLL? December 2019. https://support.microsoft.com/en-us/help/815065/what-is-a-dll
Young, M.J.: Software Tools for OS/2: Creating Dynamic Link Libraries. Addison-Wesley Longman Publishing Co. Inc, Boston (1989)
David, R., Lemmon, J.L.S.: Creating and Using Dynamic-Link Libraries, pp. 191–218. Springer, New York (2005)
Hammond, R.P., Simsbury, C.: Method and system for dynamic interception of function calls to dynamic link libraries into a windowed operating system, August 2004. https://patentimages.storage.googleapis.com/e9/6b/88/5ab25990bc5463/US6779187.pdf
Cobertson, C., Leavitt, S., N.S.F.X: x64 calling convention, June 2020. https://docs.microsoft.com/en-us/cpp/build/x64-calling-convention?view=vs-2019
Ortega-Cabezas, P.M., Colmenar-Santos, A., Borge-Diez, D., Blanes-Peiró, J.J.: Application of rule-based expert systems in hardware-in-the-loop simulation case study: Software and performance validation of an engine electronic control unit. J. Softw. Evol. Process 32(1), e2223 (2020). https://onlinelibrary.wiley.com/doi/abs/10.1002/smr.2223. e2223 JSME-18-0154.R2
Fog, A.: Calling convention for different CPP compilers and operating systems, December 2019. https://www.agner.org/optimize/calling_conventions.pdf
Cai, S., Mikeblome, ., C.R.M.J.G.J.M.S: Argument passing and naming conventions (2019). https://docs.microsoft.com/en-us/cpp/cpp/argument-passing-and-naming-conventions?view=vs-2019
Nirsoft: Dll export viewer. https://www.nirsoft.net/utils/dll_export_viewer.html
Batchelor, D., Satran, M.: File system redirector, May 2018. https://docs.microsoft.com/en-us/windows/win32/winprog64/file-system-redirector
Corporation, M.: Calling convention enum, October 2018. https://docs.microsoft.com/en-us/dotnet/api/system.runtime.interopservices.callingconvention?view=netframework-4.8
Caputo, L.: Working with DLLs, November 2014. https://docs.microsoft.com/en-us/office/client-developer/excel/working-with-dlls
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2021 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Gallardo, C., Pogrebnoy, A., Varela-Aldás, J. (2021). Development and Use of Dynamic Link Libraries Generated Under Various Calling Conventions. In: Rocha, Á., Ferrás, C., López-López, P.C., Guarda, T. (eds) Information Technology and Systems. ICITS 2021. Advances in Intelligent Systems and Computing, vol 1330. Springer, Cham. https://doi.org/10.1007/978-3-030-68285-9_22
Download citation
DOI: https://doi.org/10.1007/978-3-030-68285-9_22
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-68284-2
Online ISBN: 978-3-030-68285-9
eBook Packages: Intelligent Technologies and RoboticsIntelligent Technologies and Robotics (R0)