For my application I need to create a DLL from Delphi (to be more precise Delphi compatible code written within Lazarus IDE compiled by free pascal under linux) using stdcall.
When using that DLL (for example in Matlab or so) one needs of course the meta information for passing the arguments - often realised with a header file.
I'm searching for a tool do to that running on the delphi source code. Something like h2pas-reverse.
My research yielded no results. As I think, there is no such tool, I'd like to find a table or other information, how the Delphi/Pascal data types are mapped to C types and how to work with records.
Howto create C-Header for Delphi/Free Pascal/Lazarus DLL - data types
2.3k Views Asked by Bastian Ebeling At
1
There are 1 best solutions below
Related Questions in C
- Passing arguments to main in C using Eclipse
- kernel module does not print packet info
- error C2016 (C requires that a struct or union has at least one member) and structs typedefs
- Drawing with ncurses, sockets and fork
- How to catch delay-import dll errors (missing dll or symbol) in MinGW(-w64)?
- Configured TTL for A record(s) backing CNAME records
- Allocating memory for pointers inside structures in functions
- Finding articulation point of undirected graph by DFS
- C first fgets() is being skipped while the second runs
- C std library don't appear to be linked in object file
- gcc static library compilation
- How to do a case-insensitive string comparison?
- C programming: Create and write 2D array of files as function
- How to read a file then store to array and then print?
- Function timeouts in C and thread
Related Questions in DELPHI
- How to not load all database records in my TListbox in Firemonkey Delphi XE8
- How to catch WM_DEVICECHANGE in a control other than TForm?
- show information with Rolling / moving messages delphi xe7
- What is the different between "Console target" and "GUI target" in DCC32 option?
- How to add new online ressources to RAD Studio help system
- C# and Delphi code have different behaviour when importing unmanaged dll
- Loop through records on a cxgrid and update a field/column
- Delphi 7 - Save to a Specific .INI Files Name
- TImagelist for large images
- how to modify a function so it returns an array of strings
- Checking for internet connection in runtime
- How can I make the main form align correctly after my control height is autosized and then I maximize the form?
- fetch data from web service to dataset in Delphi
- Load candlestick data from file
- Infinite loop in parsing a string using pointer math
Related Questions in DLL
- C++ using std::vector across boundaries
- Linking to a static lib compiled with MSVC
- What are MATLAB DLLS?
- VC++ .net: Functionality from managed DLL is not exported
- DLL being marked as DELETEPENDING
- ASP.NET Web Forms give error while connecting to Oracle 11g
- Air Native Extensions: Released Air App w/Windows Native Extension works fine on develpment PC but not on other computers
- WiX and custom extensions for primary output?
- Using different versions of the same DLL in a project
- visual c++ - missing unrelated DLLs
- Error executing SSIS Package
- C++ Access violation write to 0x00000000 in dll in mql4
- How can I read embedded .resx in different assembly
- Running two versions of same Dll parallel in Asp.Net
- Call class member of c++ DLL from c#
Related Questions in HEADER-FILES
- llvm headers do not compile under msvc 2013
- How to add a c++ header file in "gedit" editor?
- Combine Fortran .for and .f90 include header files
- Internal vs External Include Guards
- when we define a class member function in header file of that class then inline keyword must be used. why?
- What's the benefit for a C source file include its own header file
- How to share same header files between kernel modules and userspace applications.
- Missing headers for kernel in bzImage loaded on qemu
- How to access a variable which is declare in namespace into another cpp file
- Header file included only once in entire program?
- Library tries to include <string.h> but includes "string.h" from my project, how to prevent?
- Including External cpp file in OpenCV cpp Code
- How can I use the tool 'Include What You Use' together with CMake to detect unused headers?
- Why crc32 value require -lz
- Can Lint resolve the include path of Header Files
Related Questions in STDCALL
- Call MASM function in StdCall convention
- Why isn't PInvoke crashing in case of violated calling convention (in .NET 3.5)?
- What is better to declare for calling convention of Windows program?
- Howto create C-Header for Delphi/Free Pascal/Lazarus DLL - data types
- Error converting void(__cdecl MyClass::*)() to void *
- Pattern of component with callback system with stdcall calling convention
- What is the correct callback signature for a function called using ctypes in python?
- compile errors log4cxx with __stdcall and Boost 1.47.0
- how to use assembly to get the result of a __stdcall function that returns float
- error C2143: syntax error : missing ';' before '__stdcall"
- C - DLL needs to be __stdcall and import __cdecl lib
- Is there any equivalent for stdcall in GCC?
- COM Server: ESP not saved across a function call when calling interface method
- Is passing a DLL function argument with "const" an equivalent to pointer?
- Creating an unmanaged DLL (in C++) which communicates with Windows Service?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
I have used the below construct to generate header files compatible with the C-mode compiler of Visual C++ 6 from Delphi 5 code when Delphi had the -JPH switch (see notes below).
Note that I have not used this since Delphi 5, but the switch has since then been expanded:
Somewhere along the line, the JPHNE switch has been added to the
dcc32command-line compiler:Rudy Velthuis has a nice article using the JPHNE switch.
It certainly does not handle all types, and you will need quite a bit of HPPEMIT and EXTERNALSYM directives.
I uploaded my Delphi 5 to Visual C++ 6 HPP conversion from back then to BitBucket.
It generates the .hpp files to import the DLL that was written in Delphi.
Notes from the Delphi 5 era: