flat assembler
Message board for the users of flat assembler.
Index
> IDE Development > New version of Easy Code 2 (June 14, 2024) Goto page Previous 1, 2, 3, 4, 5, 6, 7, 8, 9 Next |
Author |
|
EasyCode 04 Jan 2018, 19:35
Hi all,
A new version of Easy Code 2 has just been released (2.02.0.0001). Download it at: http://easycode.cat/English/Download/EasyCode20200001Eng.zip (English version) http://easycode.cat/Download/EasyCode20200001Cat.zip (Catalan version) http://easycode.cat/Spanish/Download/EasyCode20200001Esp.zip (Spanish version) Please follow the instructions in the Setup-Portable-Edition.txt file. Added Features: =========== 1. Added a Tab control in order to easily navigate among multiple files. The tab control is visible by default (ONLY when a project is open and there is at least one open file), but it can be hidden by unchecking the 'Tab Control' option of the 'View' menu. 2. New 'lz32.inc' and 'lz32.lib' files for 64-bit ASMC, FASM, JWASM, MASM and UASM projects. 3. New 'NT Service' example for FASM, both 32-bit/64-bit. Bug Fixes: ======= No bug detected. Deprecated Features: =============== None - Please read and follow the directions within the AsmC.txt, Fasm.txt, Masm.txt and UAsm.txt files located in the 'EasyCode' folder - Enjoy Easy Code! |
|||
04 Jan 2018, 19:35 |
|
EasyCode 14 Jan 2018, 10:37
Hi TmX,
Well, I do not know for sure but maybe this new version of link.exe has other dependencies or you copied the 64-bit version of link.exe (which will not work for 32-bit). For 32-bit visual projects you have to use the original Masm32 link.exe. If you want to try a newer version, please make sure it is the 32-bit version of link.exe. On the other hand, Windows 10 excessively protects the C: drive, so it is recommended to install MASM32 (and other tools) in any other drive, if possible, in order to avoid further problems. |
|||
14 Jan 2018, 10:37 |
|
TmX 17 Jan 2018, 02:11
EasyCode wrote:
Hmm... Which link.exe do you use, for building 32-bit & 64-bit app, anyway? |
|||
17 Jan 2018, 02:11 |
|
EasyCode 17 Jan 2018, 16:58
For 32-bit apps I use the link.exe included with the last version of masm32 and all 32-bit Fasm examples included with EC v2 build perfectly well if everything is well configured.
For 64-bit apps I use the link.exe v9.0.21022.8 but I do not remember where I got it. With this version of 64-bit link.exe, all 64-bit Fasm examples included with EC v2 also build perfectly well if everything is well configured. However, I think most recent versions of link.exe will work too. |
|||
17 Jan 2018, 16:58 |
|
EasyCode 17 Jan 2018, 20:30
Hi again,
For 64-bit apps use the "ml64.exe" and "link.exe" (from Visual Studio folder) located at: ..\bin\amd64\link.exe ..\bin\x86_amd64\link.exe For your reference the valid "link.exe" will be in the same folder than "ml64.exe". Regards! |
|||
17 Jan 2018, 20:30 |
|
TmX 18 Jan 2018, 02:16
I still don't get it. So, there will be 2 link.exe in C:\MASM32\bin?
|
|||
18 Jan 2018, 02:16 |
|
yeohhs 18 Jan 2018, 02:48
TmX wrote: I still don't get it. So, there will be 2 link.exe in C:\MASM32\bin? No, there should be another linker in bin64. I have two masm32 folders: one in D drive for 32-bit and the other in E drive. The one in E drive has ml64.exe and its linker, copied from VS2017 build tools. I got masm64 sdk from here. http://masm32.com/board/index.php?PHPSESSID=2cfab19b23014fc39059926b5b1d58b4&topic=6486.0 |
|||
18 Jan 2018, 02:48 |
|
EasyCode 18 Jan 2018, 09:11
Hi yeohhs,
Thank you very much for your help! |
|||
18 Jan 2018, 09:11 |
|
EasyCode 18 Jan 2018, 09:20
TmX,
Two files with the same name cannot be in the same folder, since one would overwrite the other. Just download MASM32 SDK for 32-bit projects and install it in one of your hard disks. On the other hand, follow the instructions specified by yeohhs in order to get the masm64 SDK. The 64-bit version of "link.exe" is in the Visual Studio installation. |
|||
18 Jan 2018, 09:20 |
|
TmX 18 Jan 2018, 15:15
Aahhh, I forgot there's the bin64 directory in C:\masm32.
I guess I put the wrong link.exe there. Let me check it first |
|||
18 Jan 2018, 15:15 |
|
yeohhs 18 Jan 2018, 23:27
EasyCode wrote: Hi yeohhs, Hi EasyCode, You're welcome. EasyCode is awesome! I'm trying it out right now. |
|||
18 Jan 2018, 23:27 |
|
TmX 19 Jan 2018, 01:50
A little update.
I checked C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.12.25827\bin There were 2 subfolders: Hostx86 and Hostx64. My intuition said to go into Hostx64 (because I use 64-bit Windows). Inside Hostx64, there were 2 subfolders: x86 and x64. So I took link.exe from x86 and put it into C:\masm32\bin. Not sufficient, because there were a linking error: Quote: LINK : fatal error LNK1171: unable to load mspdbcore.dll (error code: 126) There was a mspdbcore.dll in x64, though, so I put it into C:\masm32\bin as well. Still linking error, but with different message: Quote:
Hmm... |
|||
19 Jan 2018, 01:50 |
|
EasyCode 19 Jan 2018, 07:15
Hi yeohhs,
Thanks for your kind words about Easy Code. I am glad you like it! |
|||
19 Jan 2018, 07:15 |
|
EasyCode 19 Jan 2018, 07:31
Let's see TmX,
Do you know how assembly compilers work? If not, you are going to have a lot of trouble that cannot be solved in the forum. Why don't you use the "link.exe" included in masm32? No need to be replaced. On the other hand, are you including the necessary include and library files? AbortDoc, AbortPath, etc. (that is, the unresolved external symbols), need the "gdi32.inc" and the "gdi32.lib" files. The basic files to build an application are usually "kernel32.inc", "gdi32.inc" and "user32.inc" and their corresponding ".lib" files ("kernel32.lib", "gdi32.lib" and "user32.lib"). If your application calls other functions not being in the three mentioned libraries, then you must include the necessary ".inc" and ".lib" files where those functions are. If you do not know these basics, I am afraid you are not going to be able to success and I cannot help you from the distance. Regards. |
|||
19 Jan 2018, 07:31 |
|
TmX 19 Jan 2018, 17:55
So I decided to wipe my existing MASM32 directory out, and install a fresh one.
Magically, compilation was done successfuly, no more linking errors. I guess it's better to keep the tools in C:\masm32\bin as they are, should you replace them with the newer ones from VS, then make a backup first. |
|||
19 Jan 2018, 17:55 |
|
EasyCode 19 Jan 2018, 18:30
Glad to hear that!
Now please keep the masm32 folder as it is after installed. Then, when you are experienced in 32-bit programming, and want tor try 64-bit programming (which is considerably harder), create a new folder named "masm64" and put all 64-bit tools in there. |
|||
19 Jan 2018, 18:30 |
|
yeohhs 20 Jan 2018, 12:51
Hi EasyCode,
I've configured EasyCode for fasm32 and fasm64. And I've created two new projects based on the Visual Executable template. For fasm32, the project compiles without any errors and runs fine. For fasm64, the project compiles without any errors, but when I run it, there is a runtime error message like this: Quote:
Then I opened the example fasm project CPUID, 64-bit version, and it compiles and runs without any errors. Thanks in advance for your help. |
|||
20 Jan 2018, 12:51 |
|
EasyCode 20 Jan 2018, 14:30
Hi yeohhs,
Well, that is a problem in FASM that MASM does not have. The include files include all functions for each library, but depending on the Windows version you run the build application a concrete function may not exist. For example, Windows 10 has new functions that Windows 8.1 or Windows 7 did not have and viceversa (also they can vary on 32-bit/64-bit versions). In your case the function not being located belongs to "user32.lib", so please open the "user32.inc" (in the "\EasyCode\Include\Fasm\Visual" folder) search for the "DeviceEventWorker" function and comnent it. Actually you will find two definitions, one for 32-bit and one for 64-bit, please comment them both like this (or delete them): ;extrn '__imp_DeviceEventWorker' as DeviceEventWorker:qword ;extrn '__imp__DeviceEventWorker@20' as DeviceEventWorker:dword Rebuild the project and it will probably run, but if there is another function that cannot be located, repeat the previous step, that is, search for the function name (both), comment them and rebuild the project. I will do that for next versions of EC. Thanks for using Easy Code! Last edited by EasyCode on 20 Jan 2018, 14:40; edited 1 time in total |
|||
20 Jan 2018, 14:30 |
|
Tomasz Grysztar 20 Jan 2018, 14:35
You can use a macro wrapper for "extrn" with the "if used" block to generate symbol entry only if it is actually used by the project.
|
|||
20 Jan 2018, 14:35 |
|
Goto page Previous 1, 2, 3, 4, 5, 6, 7, 8, 9 Next < Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.