News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests
NB: Posting URL's See here: Posted URL Change

Main Menu

HTML to RTF

Started by guga, June 08, 2013, 01:56:26 PM

Previous topic - Next topic

TouEnMasm


The IsFormatCorrect function return correct values.See my source code who use it.
To use it,filters the return values as i have posted in my upper post.
The unknown errors are not interpreted as errors,they can be only various messages given by the dll.
Fa is a musical note to play with CL

guga

Hi Yves....i know, but it is crashing here, due to the overloading of the globallalloc function.

Some of these functions may be unitialized to clear the allocated memory in order to not break internally. It seems to be the case of IsFormatCorrect. Since i already used globalalloc heavily, it broke inside. The documentation says we must unitiliaze some functions. The problem is only figure it out which ones and how to make them work properly for all converters without breaking.

I did the same as you using IsFormatCorrect and the app simply showed the error. I tried many different variatonsfor the function....I used my own global alloc routines to better points internally what was happenning. The problem was that, before the IsFormatCorrect was used, the app was making heavy usage of globalalloc/globalloc/globalfree functions. This is why the doc says that some functions maybe unitilialized.

Now that it is working, it is better to figure it out exactly where/which functions needs better attention. I´m finishing the routine to create a config file, and will restore the usage of IsFormatCorrect checkings.


Proc IsFormatCorrect:
    Arguments @szAppName
    Local @hFileName, @hDest
    Uses ecx, ebx, edx

    xor eax eax
    On D$CConverter.m_hLibCnv = 0, ExitP
    On D$CConverter.m_IsFormatCorrect = 0, ExitP

    ;call StrCpyEx D@szAppName, StringCheckBuff, Size_Of_String
    ;call 'user32.CharToOemA' StringCheckBuff, StringCheckBuff
    call StringtoHGlobal D@szAppName | mov D@hFileName eax

    ;mov D@hDest 0
    ;lea eax D@hDest
    ;call 'RosMem.VMemAlloc' eax, 256

    call 'kernel32.GlobalAlloc' &GHND, 4096 | mov D@hDest eax
    ;call 'kernel32.GlobalAlloc'2 &GHND, 1024 | mov D@hDest eax
    ;call 'kernel32.GlobalLock' eax
    ;call 'kernel32.GlobalHandle' eax
    ;call GlobalHandle eax

    ;call 'kernel32.GlobalAlloc'2 &GHND, 1024 | mov D@hDest eax
    call D$CConverter.m_IsFormatCorrect D@hFileName, eax

    mov ebx eax
    call 'kernel32.GlobalFree' D@hFileName
    call 'kernel32.GlobalFree' D@hDest
    ;call 'kernel32.GlobalFree' D@hDest
    ;call 'kernel32.GlobalFree' D@hFileName
    ;call 'RosMem.VMemFree' D@hDest
    ;call 'RosMem.VMemFree' D@hFileName
    mov eax ebx

EndP
Coding in Assembly requires a mix of:
80% of brain, passion, intuition, creativity
10% of programming skills
10% of alcoholic levels in your blood.

My Code Sites:
http://rosasm.freeforums.org
http://winasm.tripod.com