Sue King
Members-
Content Count
53 -
Joined
-
Last visited
Everything posted by Sue King
-
Using dxgettext on Windows 10
Sue King replied to dummzeuch's topic in Tips / Blogs / Tutorials / Videos
I've asked on the Nexus forum about this, posting this call stack from the debugger. gnugettext.TGnuGettextInstance.LoadResString($676444) gnugettext.LoadResStringW($676444) nxllUtils.nxRaiseLastOSError(True,0) nxtwWinsockTransport.TnxWinsockClientConnection.DoRecv((no value),32) nxtwWinsockTransport.TnxWinsockClientConnection.Read((nxptBasePooledTransport.TnxBasePooledTransport.btMessageReceived,$7E790030)) nxptBasePooledTransport.TnxBaseCallbackThread.InnerExecute nxllThread.TnxInternalInitThread.DoExecute nxllThread.TnxThread.Execute nxptBasePooledTransport.TnxBaseCallbackThread.Execute :0047a030 ThreadProc + $4C :00409e7e ThreadWrapper + $2A :76d1fe09 KERNEL32.BaseThreadInitThunk + 0x19 :77d0662d ntdll.RtlGetAppContainerNamedObjectPath + 0xed :77d065fd ntdll.RtlGetAppContainerNamedObjectPath + 0xbd This sequence is repeated for each time through the endless loop. The translated text first time through is '[unknown]'. If I don't actually The suggestion was that maybe there is something in LoadResString that causes issues when called in the context of a different thread. The Nexus code I'm trying to use has multiple threads involved so maybe there is a race condition somewhere. -
32 bit compiler, I'll see if I can narrow it down a bit and create a sample project that shows the error.
-
Using dxgettext on Windows 10
Sue King replied to dummzeuch's topic in Tips / Blogs / Tutorials / Videos
I've spent some hours in the debugger trying to see what is going on. Unfortunately the Nexus code is multi-threaded and it makes it hard to follow what is going on. Before I go back to them, I've played around with the code inTGnuGettextInstance.dgettext. It seems as though calling utf8encode, and then utf8decode can trigger the looping, but it may be that something is happening that I don't understand. That is, changing to code to add var lResult: UnicodeString; lUTF8String: UTF8String; begin ... end else begin lUTF8String := utf8encode(szMsgId); lResult := UTF8Decode(lUTF8String); Result := szMsgId; ... causes the loops. While running, if I jump over the utf8decode in the debugger (4 times), it then completes. If utf8decode is not called it works fine. I noticed that while it is looping, the message is [unknown]. When I skip the utf8decode with the debugger, it shows [Operation aborted] the first 2 times through, and then '[unknown]' the next 2 times, and then doesn't need to call it again as it has completed whatever it is doing successfully. If this doesn't give you any clues, then I'll talk to Nexus. I wanted to do all I could before raising it with them. At the moment, I've think I reached the end of my knowledge with trying to debug this. The call stack in the debugger doesn't appear helpful. Thanks for looking at this. -
Using dxgettext on Windows 10
Sue King replied to dummzeuch's topic in Tips / Blogs / Tutorials / Videos
Thanks for the explanation about why the changed test isn't a fix. From what I can see in the debugger, it is not an error in finalization - the process is not being terminated when the error occurs. The loop involves repeatedly calling ResourceStringGettext. The test app has a class that uses a winsock. Something is happening when the winsock is closed that causes a loop, possibly an exception getting a string. The workarounds I've tried mean I can open and close the socket multiple times in the app. Without it, the app hangs on the first close. This version does not help. -
Using dxgettext on Windows 10
Sue King replied to dummzeuch's topic in Tips / Blogs / Tutorials / Videos
Nexus does not hook that function. I have checked with the Nexus team. I have found a work around in gnugettext.pas. In TGnuGettextInstance.ResourceStringGettext add a test for refcount = 0 so that it starts with if (MsgId='') or (ResourceStringDomainListCS=nil) or (ResourceStringDomainListCS.RefCount=0) then begin Result := MsgId; exit; end; -
Using dxgettext on Windows 10
Sue King replied to dummzeuch's topic in Tips / Blogs / Tutorials / Videos
A bit more information. The test app I was using was a sample demo from Nexus that I'd modified to test some units I'd written. To eliminate my code, I went back to the original demo. The problem still occurs, but it may have shed more light on what is happening. In gnugettext.pas, I enabled the HookLoadResString and changed TGnuGettextInstance.LoadResString to Result := 'fred'; This resulted in the app closing properly. Result := ResourceStringGettext('fred'); Resulted in the problem. Putting in some outputdebugstrings, it appears that it is going into a loop calling LoadResStringW. Looking at the Nexus code in the debugger I think at this stage it might be raising a silent exception which is calling LoadResStringW and maybe that is generating an exception somewhere and it is going into a never-ending loop. More time in debugging may pin it down a bit more. Unfortunately my day was unexpectedly interrupted and I haven't been able to do more than this. I may not have more time until mid-next week to do much on it. Things will be a bit unpredicable for the next few days, but if there is anything you can suggest for me to do, I'll do my best to find the time as I'd like to get to the bottom of it. Sue -
Using dxgettext on Windows 10
Sue King replied to dummzeuch's topic in Tips / Blogs / Tutorials / Videos
I haven't done any more on it. I thought I would leave it for a bit and come back to it. I can use the latest version providing I disable HookLoadResString.Enable; I'll have another look today. This is the first time I've needed to look at hooking, so it is new territory for me. The actual code looks OK, but something must be going on that isn't. -
Although I have the mobile platforms now, it isn't available for some projects that have been updated. I thought about submitting a case about it, but there are other similar cases listed and I can't wait for a fix, so I'll recreate the .proj files and sort it out that way. I've also found that I can't use IDEFixPack or install ProjectMagician, so there is something odd about the installation. It was installed into a new VM, so there are no upgrade issues. However I am able to move on to new work so that is good. Apart from the way the IDE jumps around the screen, I like working with Rio. That path problem is has been around for years. Pity they can't do something about it. I'm not sure I actually helped with the problem, but I do find it encouraging when I have problems and people have suggestions and comments. Cheers, Sue
-
I've just tried this and found that when a form is opened, I'm getting Internal error C00001D. This is with both VCL and FMX projects. I ended up uninstalling it. Has anyone else seen something like this ?
-
Project Magician and Selective Debugging and Delphi 10.3 Rio
Sue King replied to Uwe Raabe's topic in Delphi Third-Party
It does not appear in either place. It is Add/Remove programs under Windows, but the IDE doesn't know a thing about it. It also doesn't appear in the GExperts Expert Manager. I'm not sure if it should. I've just had to re-install Rad Studio as the web installer didn't add platforms properly. This was an ISO install. I tried to install it before re-installing from the ISO and it didn't appear then either. I just thought it was something weird in the web setup. It appears to be something weird in my setup. I was hoping to use it to add Platforms to projects that have been upgraded from Berlin. I guess I'm just going to have to recreate the projects. Thanks anyway. -
When I installed with the web installer, I only had Windows 32 and iOS. Weird. Now I have the lot. Good luck Sue
-
Hi Curt, What exactly is your symptom ? Can you create a new project for mobile ? I've found that projects from Berlin, which I'm upgrading to Rio, can't add Platforms. Project Magician from Uwe Raabe should all Add Platforms to work, if this is your problem. Unfortunately, even though I now have mobile enabled for new projects, I can't enable it for existing ones and Project Magician although installed according to registry is not showing in the IDE. I have posted in third party to ask Uwe if he has any ideas about what is wrong. As a last resort, I'll recreate my project files as there aren't many. Still taking baby steps with mobile. Regards Sue
-
Project Magician and Selective Debugging and Delphi 10.3 Rio
Sue King replied to Uwe Raabe's topic in Delphi Third-Party
Hello Uwe, I have just installed Project Magician, 1.0.14 for Rad Studio Rio and cannot find where to configure it. It does not appear under Options -> Third Party. Rad Studio was closed at the time of installation. Project Magician is shown as a known package. Any ideas ? Regards Sue -
Hi Curt, For your peace of mind, deleting, adding and re-registering is something I did and it didn't do any damage, although it will have bumped my installation count. It didn't fix my problem - I have now been advised to download the ISO and reinstall. My problem is with the 10.3 installation via web, and I suspect from this and other comments, it really is still pretty buggy and the ISO is safer. Sue
-
I have a similar position to you. I thought I would try the web installer instead of ISO this time. My licence shows Professional with Mobile. I tried installing Android from Platform manager. Initially it wouldn't work because after checking install, I needed to go to Additional Options tab and also check installing the Java Developement Kit and Android SDK 25.25 NDK r17b, so they installed before Delphi Android Professional installed. After getting the Delphi Android 'successfully' installed, I still don't have Android SDKs in Options -> Deployment -> SDK Manager. I also used the Platform Installer to install MacOS and Windows 64 bit. After this I uninstalled Android and re-installed it, but no difference in the outcome. On opening a project, Windows 32 and iOS are the only available platforms. After logging a support case, I have received 1 reply to my support case suggesting that I re-register my licence. This had no effect. My symptoms are that not only is Android not shown in the SDK Manager, Android, Windows 64bit and MacOS are not shown as platforms for selection. I've sent a reply to Support indicating failure of their solution. I'll let you know what comes back in case it helps you. Regards Sue
-
Using dxgettext on Windows 10
Sue King replied to dummzeuch's topic in Tips / Blogs / Tutorials / Videos
That makes sense. I thought it was a Windows function because at some stage the IDE took me to WinAPI.Windows, but it doesn't now. Thanks -
Using dxgettext on Windows 10
Sue King replied to dummzeuch's topic in Tips / Blogs / Tutorials / Videos
I don't quite understand where the gettext version is used in this code. I interpreted it to mean that LoadResString uses Windows LoadResStringW (for example) instead of the Borland implementation to get the string, and that string is then passed to gettext. Is this not correct ? -
Using dxgettext on Windows 10
Sue King replied to dummzeuch's topic in Tips / Blogs / Tutorials / Videos
Thanks. It isn't urgent although I would like to get something resolved and move on to the next challenge - dxgettext and FireMonkey.😕 -
Using dxgettext on Windows 10
Sue King replied to dummzeuch's topic in Tips / Blogs / Tutorials / Videos
Do you mean so that if there isn't something for gettext and there is a resource translation, there is only one call ? -
Using dxgettext on Windows 10
Sue King replied to dummzeuch's topic in Tips / Blogs / Tutorials / Videos
My previous suspicions that it is related to load strings seem to be borne out. I noticed that the Nexus code does use resource strings. I can make the latest version r115 work by commenting out one line : HookLoadResString.Enable; Prior to that, r47 worked as is. I could get r75 to work by adding the the lines referencing CreatorThread. r76 introduces GetResString and re-adding CreatorThread references did not help, hence looking for other changes I could make. What is the purpose of using Windows LoadResStringW (for unicode) instead of the Borland version ? What does 'gettext enabled version' mean ? Sue -
Using dxgettext on Windows 10
Sue King replied to dummzeuch's topic in Tips / Blogs / Tutorials / Videos
I have a very difficult to find (for me) issue with a version of gnugettext.pas shown as $LastChangedRevision 220 $ with Thomas Mueller and Olivier Sannier in the contributors' list that does not occur in a version with the same revision, and without those contributors. I'm not sure where either of file came from, but thought I had them from the Sourceforge repository in 2017. There are a number of different versions in the repository, and all of them with $DEFINEs of the form dx_xxxx seem to cause the problem. The reason it is difficult to find is that it only happens in programs that use some of the Nexus DB components, and it results in the component going into an endless loop when a stopping as some threads do not terminate. I'm just looking at this again after a long period of ignoring it by using an older version of gnugettext. This is with 10B. The test application works fine on its own. As soon as I add gnugettext to the uses clause, it fails. The app does not actually call anything in gnugettext. I assume the only way to narrow it down is to change the working version and add the changes that are in later versions and see which one causes the problem. Which of the many different versions in the repository should I aim for ? Regards Sue -
Illegal characters causing problems and can't be found
Sue King replied to Gary Mugford's topic in General Help
I wonder if fieldByName(PN).AsString is not giving you all the characters stored for the field as it translates it to a string, because of the invalid character. Can you access the field as an ansichar array somehow to do the test ? Sue -
Has anyone succeeded with this ? I can't get past the page where it asks for Username, Organisation and Serial number. Next is never enabled. I didn't think it needed a serial number. I've tried my Rad Studio SN, as well as one I have for Radiant Shapes from a few years back. (Sorry if this is a double-post - it hasn't appeared in my list of topics) Sue
-
Strange thing in System.Generics.Defaults.pas
Sue King replied to Jacek Laskowski's topic in RTL and Delphi Object Pascal
Wow ! Surely as good an answer as possible. -
For anyone who has this problem, I found the solution on the Embarcadero forums (second attempt). An email with a serial number was sent out in June 2017. This was a different serial number from the one I had been trying. It worked. I did have to add the component package manually.