flat assembler
Message board for the users of flat assembler.
 Home   FAQ   Search   Register 
 Profile   Log in to check your private messages   Log in 
flat assembler > IDE Development > New version of Easy Code 2 (February 4, 2018)

Goto page Previous  1, 2, 3, 4, 5, 6  Next
Author
Thread Post new topic Reply to topic
EasyCode



Joined: 26 Jul 2015
Posts: 112

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!
Post 04 Jan 2018, 19:35
View user's profile Send private message Reply with quote
TmX



Joined: 02 Mar 2006
Posts: 811
Location: Jakarta, Indonesia

Hi Ramon,

When compiling a simple FASM GUI app using the very latest EasyCode, I got this:

Quote:

Linking...
LINK : fatal error LNK1171: unable to load mspdb140.dll (error code: 193)



I'm running 64-bit Windows 10. Yes, I have VS 2017 with the latest updates installed. I also have MASM32 SDK (in C:\masm32).

I already replaced masm32's link.exe with the latest from VS 2017, taken from C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin. mspdb140.dll was also copied as well.
Post 08 Jan 2018, 02:04
View user's profile Send private message Reply with quote
EasyCode



Joined: 26 Jul 2015
Posts: 112

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.
Post 14 Jan 2018, 10:37
View user's profile Send private message Reply with quote
TmX



Joined: 02 Mar 2006
Posts: 811
Location: Jakarta, Indonesia


EasyCode wrote:

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.



Hmm... Confused
Which link.exe do you use, for building 32-bit & 64-bit app, anyway?
Post 17 Jan 2018, 02:11
View user's profile Send private message Reply with quote
EasyCode



Joined: 26 Jul 2015
Posts: 112

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.
Post 17 Jan 2018, 16:58
View user's profile Send private message Reply with quote
EasyCode



Joined: 26 Jul 2015
Posts: 112

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!
Post 17 Jan 2018, 20:30
View user's profile Send private message Reply with quote
TmX



Joined: 02 Mar 2006
Posts: 811
Location: Jakarta, Indonesia

I still don't get it. So, there will be 2 link.exe in C:\MASM32\bin?
Confused
Post 18 Jan 2018, 02:16
View user's profile Send private message Reply with quote
yeohhs



Joined: 19 Jan 2004
Posts: 165
Location: N 5.43564° E 100.3091°


TmX wrote:
I still don't get it. So, there will be 2 link.exe in C:\MASM32\bin?
Confused



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

_________________
“It’s not that we have a short time to live, but that we waste a lot of it.”
-Lucius Annaeus Seneca
Post 18 Jan 2018, 02:48
View user's profile Send private message Visit poster's website Reply with quote
EasyCode



Joined: 26 Jul 2015
Posts: 112

Hi yeohhs,

Thank you very much for your help!
Post 18 Jan 2018, 09:11
View user's profile Send private message Reply with quote
EasyCode



Joined: 26 Jul 2015
Posts: 112

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.
Post 18 Jan 2018, 09:20
View user's profile Send private message Reply with quote
TmX



Joined: 02 Mar 2006
Posts: 811
Location: Jakarta, Indonesia

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

Embarassed
Post 18 Jan 2018, 15:15
View user's profile Send private message Reply with quote
yeohhs



Joined: 19 Jan 2004
Posts: 165
Location: N 5.43564° E 100.3091°


EasyCode wrote:
Hi yeohhs,

Thank you very much for your help!



Hi EasyCode,

You're welcome. Smile EasyCode is awesome! I'm trying it out right now.

_________________
“It’s not that we have a short time to live, but that we waste a lot of it.”
-Lucius Annaeus Seneca
Post 18 Jan 2018, 23:27
View user's profile Send private message Visit poster's website Reply with quote
TmX



Joined: 02 Mar 2006
Posts: 811
Location: Jakarta, Indonesia

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:

HelloFASM.obj : error LNK2001: unresolved external symbol __imp__AbortDoc@4
HelloFASM.obj : error LNK2001: unresolved external symbol __imp__AbortPath@4
HelloFASM.obj : error LNK2001: unresolved external symbol __imp__AddFontResourceA@4
HelloFASM.obj : error LNK2001: unresolved external symbol __imp__AddFontResourceW@4
HelloFASM.obj : error LNK2001: unresolved external symbol __imp__AnimatePalette@16
HelloFASM.obj : error LNK2001: unresolved external symbol __imp__AngleArc@24
HelloFASM.obj : error LNK2001: unresolved external symbol __imp__Arc@36
HelloFASM.obj : error LNK2001: unresolved external symbol __imp__ArcTo@36
HelloFASM.obj : error LNK2001: unresolved external symbol __imp__BeginPath@4
...
...



Hmm...
Post 19 Jan 2018, 01:50
View user's profile Send private message Reply with quote
EasyCode



Joined: 26 Jul 2015
Posts: 112

Hi yeohhs,

Thanks for your kind words about Easy Code. I am glad you like it!
Post 19 Jan 2018, 07:15
View user's profile Send private message Reply with quote
EasyCode



Joined: 26 Jul 2015
Posts: 112

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.
Post 19 Jan 2018, 07:31
View user's profile Send private message Reply with quote
TmX



Joined: 02 Mar 2006
Posts: 811
Location: Jakarta, Indonesia

So I decided to wipe my existing MASM32 directory out, and install a fresh one.
Magically, compilation was done successfuly, no more linking errors. Shocked

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.
Embarassed
Post 19 Jan 2018, 17:55
View user's profile Send private message Reply with quote
EasyCode



Joined: 26 Jul 2015
Posts: 112

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.
Post 19 Jan 2018, 18:30
View user's profile Send private message Reply with quote
yeohhs



Joined: 19 Jan 2004
Posts: 165
Location: N 5.43564° E 100.3091°

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:

The procedure entry point DeviceEventWorker could not be located in the dynamic link library.



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. Smile

_________________
“It’s not that we have a short time to live, but that we waste a lot of it.”
-Lucius Annaeus Seneca
Post 20 Jan 2018, 12:51
View user's profile Send private message Visit poster's website Reply with quote
EasyCode



Joined: 26 Jul 2015
Posts: 112

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
Post 20 Jan 2018, 14:30
View user's profile Send private message Reply with quote
Tomasz Grysztar
Assembly Artist


Joined: 16 Jun 2003
Posts: 6769
Location: Kraków, Poland

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.
Post 20 Jan 2018, 14:35
View user's profile Send private message Visit poster's website Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page Previous  1, 2, 3, 4, 5, 6  Next

< Last Thread | Next Thread >

Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Main index   Download   Documentation   Examples   Message board
Copyright © 2004-2018, Tomasz Grysztar.
Powered by rwasa.