QB64.org Forum
QB64 Team Software => InForm Discussion => Topic started by: RonB on October 24, 2018, 05:49:25 pm
-
Downloaded and installed both QB64 v1.2 (stable) AND QB64 v1.2 (Latest). Then downloaded Inform Beta 7.
When trying to install Inform in either of the v1.2 QB64 folders, the install appears to freeze at the C++ to EXE portion of compiling the UIEditor and I have to cancel the compile and the installation fails.
I tried compiling \inform\UIEditor.bas in the QB64 IDEs (v1.1, 1.2stable, and 1.2Latest) all with the same result - IDE says the .bas is OK, but an attempt to run begins the compilation process but it never finishes, and I have to kill the IDE.
Running on Windows 7 Professional.
-
Hello, Ron. Welcome to the forum.
Do other programs compile with QB64? It could be an antivirus software interfering with the output.
-
Yes. Non-Inform programs compile OK.
Programs that DO include InForm forms, created with a prior version of InForm, obviously, get flagged with an "Illegal string-number conversion" error in the SUB __UI_LoadForm Subroutine in the included form. For example, a program including "MyForm.frm" gets flagged on statement:
__UI_NewID = __UI_NewContro(__UI_Type_Form, "MyForm", 722, 590, 0, 0, 0).
Ron
-
Curious. We could try a support session and I could see if I could find the issue, if you’re willing to use something like Google’s Remote Desktop solution https://chrome.google.com/webstore/detail/chrome-remote-desktop/gbchcmhmhahfdphkhkmpfmihenigjmpp (https://chrome.google.com/webstore/detail/chrome-remote-desktop/gbchcmhmhahfdphkhkmpfmihenigjmpp) or even TeamViewer QuickSupport https://www.teamviewer.com/download/windows/ (https://www.teamviewer.com/pt-br/download/windows/).
Let me know.
-
Actually, the syntax error was something different, but when the form opened in a separate window, it was flagged on a statement that would have been OK in the grand scheme, just not in a standalone file.
Anyway, The program DOES compile in QB64 v1.1 with the old InForm but fails in QB64 v1.2 with the Beta 7 InForm. The compilation error log shows:
\AppData\Local\Temp\ccmOTGZh.o:qbx.cpp:(.text+0xac436): undefined reference to `MessageBoxA(int, char*, char*, int)'
\AppData\Local\Temp\ccmOTGZh.o:qbx.cpp:(.text+0xac5b5): undefined reference to `MessageBoxA(int, char*, char*, int)'
\AppData\Local\Temp\ccmOTGZh.o:qbx.cpp:(.text+0xac6e8): undefined reference to `MessageBoxA(int, char*, char*, int)'
/qb64/internal/c/c_compiler/bin/../lib/gcc/i686-w64-mingw32/4.7.1/../../../../i686-w64-mingw32/bin/ld.exe: \AppData\Local\Temp\ccmOTGZh.o: bad reloc address 0x10 in section `.data'
/qb64/internal/c/c_compiler/bin/../lib/gcc/i686-w64-mingw32/4.7.1/../../../../i686-w64-mingw32/bin/ld.exe: final link failed: Invalid operation
collect2.exe: error: ld returned 1 exit status
Perhaps that helps? FWIW, the program does invoke a messagebox for errors
-
You don't compile a .frm file directly, but the .bas file that includes it.
There is indeed a call to Window's MessageBox, wrapped by InForm's own MessageBox function, but none of those error messages should appear indeed.
My hypothetical support is only limited. My remote access support offer still stands. Let me know if it interests you, as I really wish you to be able to use QB64+InForm properly.
Fellippe.
-
To paraphrase Shakespeare, The fault, Dear Brutus, lies not in our stars, but in our Anti-virus software.
After much ado, I installed the v1.2 QB64 and InForm Beta 7 on a different Windows 7 machine - one that is running different AV software, and InForm installed just fine - the C++ compiles to .EXE's ran without a problem, and the UIEditor came up and looks great. Unfortunately, it means that, once upgraded to InForm Beta 7, my InForm based QB64 programs cannot be maintained on that InForm intolerent machine, but will have to be compiled on machines with kinder, gentler, InForm-friendly AV software.
Curious as to why some AV software doesn't like InForm compilations.
Ron
-
Whitelisting your whole QB64 folder is a recommended measure.
Glad to hear you found the faulty element.
Fellippe.
-
Hello, Ron. Welcome to the forum.
Do other programs compile with QB64? It could be an antivirus software interfering with the output.
It's usually that.
-
And don't run it in a folder under "Program Files". For Windows, I've had lot issues with trying to run QB64 under Program Files -- write permission errors, needing to execute as Admin, anti-virus problems...
Things seem to work much better in an independent directory, such as "C:\QB64\" instead of "C:\Program Files\QB64\"
-
Agreed. Mine sits on my desktop.
-
I try to avoid Program Files (or Program Files (x86)) as much possible. C:\QB64 is where it's at.
And, fwiw, I did try running the install "as administrator" for all the good that did. Wasn't a problem running as a plain old user on my InForm-friendly machine. Also, fwiw, the UNfriendly machine has EndPoint AV, while the Friendly machine doesn't. Perhaps that's why non-InForm QB64 programs DID compile & run. Then again, the ones I compiled successfully did NOT have messagebox function calls. I'll have to have a look at that a little closer. That seems to be a culprit.
-
As Fell says, you need to exclude QB64 from the antivirus real time protection.
https://support.eset.com/kb2153/?viewlocale=en_US