-
Content Count
3527 -
Joined
-
Last visited
-
Days Won
175
Everything posted by David Heffernan
-
As I read the documentation, I think you are right. Well done. On the home straight now. As I said, this is fundamentally a numpy issue. No doubt a numpy expert would have been aware of this.
-
No. Python buffer API gives you access to the internal buffer of Python objects. Pass that to Delphi and have your delphi code populate it.
-
It seems odd to me that you won't use the solution that I outlined above which is known to work. But if you won't entertain that then you are probably asking in the wrong place. Because what you are asking is really a numpy question. I'd ask the question on SO and tag it python and numpy. Doesn't matter at all that the array is from Delphi. It's just an array of double.
-
You want to do more than this don't you. You want to use numpy methods with this shared data. Is that correct?
-
What @fjames wants to do in Python is to use numpy without copying data between Delphi and Python. Are you aware of a way to do this with numpy that I have missed?
-
I don't think there's an easy way to get numpy to use your raw array memory. My initial suggestion, I suspect, is the only tractable way to do this without copying.
-
Reading fields with different lenghts
David Heffernan replied to AndrewHoward's topic in Delphi IDE and APIs
Beyond the compilation error which is just a typo, pointless to zeroise the record and then write over those zeros. -
Something can't be both a Delphi array and a numpy array. You should do what in said. Work with a numpy array's buffer. You'll access that as a pointer in Delphi. Use pointer math.
-
If you want to work with numpy, and minimise copying, then you create a numpy ndarray array object and use the buffer protocol to gain access to the object's internal buffer. Do all your work in Delphi using that internal buffer.
-
Reading fields with different lenghts
David Heffernan replied to AndrewHoward's topic in Delphi IDE and APIs
If the fields are at known, fixed positions then you can read them directly. If not then you need to parse the data. -
IOTAProcess.ReadProcessMemory / .WriteProcessMemory
David Heffernan replied to dummzeuch's topic in Delphi IDE and APIs
Seems unlikely. The winapi functions return a BOOL and call SetLastError. HRESULT seems very implausible. -
IOTAProcess.ReadProcessMemory / .WriteProcessMemory
David Heffernan replied to dummzeuch's topic in Delphi IDE and APIs
That's called returning a value through a parameter. If you look at this function, what else could these integer return values hold? -
function reference feature for Delphi source code
David Heffernan replied to Nasreddine's topic in GExperts
By output I mean what is produced by the compiler. -
function reference feature for Delphi source code
David Heffernan replied to Nasreddine's topic in GExperts
I don't think so. I think that you don't seem to understand the requirement. You certainly can't achieve the functionality shown in the original post from a native executable file (like the ones that Delphi produce). -
function reference feature for Delphi source code
David Heffernan replied to Nasreddine's topic in GExperts
A map file doesn't list functions calls. You can't map the graph of function calls from a map file. Parsing isn't enough. You also need to interpret the tokens that the parser emits, using the syntax of the language. For sure you need a parser. But it's not enough. You need more. -
function reference feature for Delphi source code
David Heffernan replied to Nasreddine's topic in GExperts
No. You need way more than a map file to find all the incoming references to a function. This won't tell you the information either. -
function reference feature for Delphi source code
David Heffernan replied to Nasreddine's topic in GExperts
grep is useless for this purpose. This functionality in VS works because the tooling is able to compile the code and understand all the references from the output of that compilation. A naive text match using grep will give nothing whatsoever of value. -
Common callback functions, or not?
David Heffernan replied to Mike Torrettinni's topic in RTL and Delphi Object Pascal
No. That makes no sense. Anonymous methods are just procedural types with variable capture. -
How would RAM be wasted?
-
You don't need to call Release in Delphi code. The compiler manages that for you.
-
Random unsigned 64 bit integers
David Heffernan replied to julkas's topic in Algorithms, Data Structures and Class Design
Absolutely not. Some UInt64 values can never be returned and the performance will be poor. -
Is the missing System.TStringHelper SetChars in Chars property on purpose ?
David Heffernan replied to Rollo62's topic in RTL and Delphi Object Pascal
What will it take for Delphi programmers to give up on the idea that strings and byte arrays are the same thing! -
Random unsigned 64 bit integers
David Heffernan replied to julkas's topic in Algorithms, Data Structures and Class Design
Random returns 32 bits of randomness, why only use 16 of them? In other words, can't you do this with two calls to Random rather than four. Furthermore, Random is a pretty low grade PRNG. Depending on what you intend to use this for, you may want to use a better PRNG. -
Is the missing System.TStringHelper SetChars in Chars property on purpose ?
David Heffernan replied to Rollo62's topic in RTL and Delphi Object Pascal
These helpers are often just copied from .net, and .net strings are immutable. Here is the .net property: https://docs.microsoft.com/en-us/dotnet/api/system.string.chars?view=netcore-3.1 -
What calling convention is the function? If it is register then that is a problem. Make sure it is stdcall. A websearch for pinvoke will tell you how to call this function.