Author Topic: Update of ObjAsm32 V1.6  (Read 10053 times)

Biterider

  • Moderator
  • Member
  • *****
  • Posts: 113
  • ObjAsm32
    • ObjAsm32
Update of ObjAsm32 V1.6
« on: August 26, 2012, 10:54:33 PM »
First update released!
This update includes the change in the sources of the file updater and the new version of ResGuard.
The updater was improved in the proxy comunication, while RegGuard version 2 is now multithread capable and delivers additionally more information to improve the location of resource leaks.
Some applications need an update too, since the new ResGuard detected there a few leaks.

Biterider

jj2007

  • Member
  • *****
  • Posts: 7558
  • Assembler is fun ;-)
    • MasmBasic
Re: Update of ObjAsm32 V1.6
« Reply #1 on: September 02, 2012, 06:52:59 AM »
Looks like a great project project, biterider :t
Unfortunately, I get (with "typical" settings) a number of errors when building the lib:

 Assembling: DialogDXSetup.asm
STRING TYPE: WIDE
DEBUG MODE : INACTIVE
SUPPORT FOR: OOP
D:\Masm32\ObjAsm32\Code\Objects\DialogDXSetup.inc(811) : error A2006: undefined symbol : _sn
printf
D:\Masm32\ObjAsm32\Code\Objects\DialogDXSetup.inc(971) : error A2006: undefined symbol : CRT
DLL_snprintf
D:\Masm32\ObjAsm32\Code\Objects\DialogDXSetup.inc(1043) : error A2006: undefined symbol : CR
TDLL_snprintf

etc - and of course, the demos shout "POLINK: fatal error: File not found: 'D:\Masm32\Lib\ObjMem32.lib'."

Any workaround?

Biterider

  • Moderator
  • Member
  • *****
  • Posts: 113
  • ObjAsm32
    • ObjAsm32
Re: Update of ObjAsm32 V1.6
« Reply #2 on: September 02, 2012, 03:57:57 PM »
Hi JJ
It seems to be a problem with the CRTDLL files in the “include” and “lib” directories. It had to be automatically installed by the installer. Please verify it the files are there. If missing, I attached these 2 files.

The second problem is the ObjMem32.lib which seems not to be present. This file should also be created at installation time. Look here to create the lib “...\ObjAsm32\Code\ObjMem32\Make_Lib_386.bat”.
I see you are using the D: drive as the installation root. There are 2 system environment variables called MASM32_PATH & OA32_PATH. Please check that they are pointing to the correct location.

The compilations settings are all contained in the “ObjAsm32\Bin” directory in form of batch files. Those are invoked by the project make files. This way you can set your favourite compiler & linker for the whole OA32 project or customize each individual project changing the local make file.

Biterider

jj2007

  • Member
  • *****
  • Posts: 7558
  • Assembler is fun ;-)
    • MasmBasic
Re: Update of ObjAsm32 V1.6
« Reply #3 on: September 02, 2012, 06:27:33 PM »
It seems to be a problem with the CRTDLL files in the “include” and “lib” directories. It had to be automatically installed by the installer. Please verify it the files are there. If missing, I attached these 2 files.

The second problem is the ObjMem32.lib which seems not to be present. This file should also be created at installation time. Look here to create the lib “...\ObjAsm32\Code\ObjMem32\Make_Lib_386.bat”.
I see you are using the D: drive as the installation root. There are 2 system environment variables called MASM32_PATH & OA32_PATH. Please check that they are pointing to the correct location.

WinZip says invalid archive, but it works with 7-Zip.

The environment vars are ok but it seems your batch files have hard-coded drive letters:
If not exist C:\RadASM Goto :NoRadASM
Copy ObjMem32.api C:\RadASM\Masm\ObjMem32.api

Better:
If not exist \RadASM Goto :NoRadASM
Copy ObjMem32.api \RadASM\Masm\ObjMem32.api

I got it working:

    OCall pShape_1::TriangleShape.Init, 10, 15      ;Initialize TriangleShape
    OCall pShape_1::Shape.GetArea                   ;Invoke GetArea method of TriangleShape
    DbgDec eax                                      ;Result = 75
                                              deb 4, "Init", eax, pShape_1

Init
eax             75
pShape_1        1329040

 :biggrin:

Biterider

  • Moderator
  • Member
  • *****
  • Posts: 113
  • ObjAsm32
    • ObjAsm32
Re: Update of ObjAsm32 V1.6
« Reply #4 on: September 03, 2012, 07:12:36 PM »
Hi
You are right. Little change.
Did you get the rest working? I hope so  ::)

Biterider

jj2007

  • Member
  • *****
  • Posts: 7558
  • Assembler is fun ;-)
    • MasmBasic
Re: Update of ObjAsm32 V1.6
« Reply #5 on: September 03, 2012, 07:18:22 PM »
Did you get the rest working? I hope so  ::)

Had no time yet to test it all, and my main interest so far was to see if ObjAsm and MasmBasic can be combined, but first impression is it works :t

HSE

  • Member
  • ****
  • Posts: 532
  • <AMD>< 7-32>
Re: Update of ObjAsm32 V1.6
« Reply #6 on: March 01, 2016, 07:10:17 AM »
Apparently there is a conflict between masm32.inc and this crtdll.inc in atol, isalpha, islower and isupper.

Biterider

  • Moderator
  • Member
  • *****
  • Posts: 113
  • ObjAsm32
    • ObjAsm32
Re: Update of ObjAsm32 V1.6
« Reply #7 on: March 01, 2016, 08:53:49 AM »
Hi HSE
Thanks for the info. Can you be more specific? What compatibility issues are you facing?

Biterider

HSE

  • Member
  • ****
  • Posts: 532
  • <AMD>< 7-32>
Re: Update of ObjAsm32 V1.6
« Reply #8 on: March 01, 2016, 10:40:56 AM »
Hi Biterider!

atol, isalpha, islower and isuppe are defined in both libraries. It's not posible to use that libraries simultaneusly, what emerge are conflicting PROTO definitions:

Code: [Select]
D:\masm32\Include\crtdll.inc(399) : Error A2094: VARARG requires C calling convention

Not a critical issue, but for a long time user of masm32 library it's a little tricky   :shock:. At least some warning is convenient. 

Graph2D is calling CRTDLL_snprintf, and I think exactly the same function is in msvcrt (wich is very integrated with MASM32 now). But to change that imply to modify a object inside the ObjAsm32 package and I'm trying don't do that.

Thanks. HSE