Alpha Software Mobile Development Tools:   Alpha Anywhere    |   Alpha TransForm subscribe to our YouTube Channel  Follow Us on LinkedIn  Follow Us on Twitter  Follow Us on Facebook

Announcement

Collapse

The Alpha Software Forum Participation Guidelines

The Alpha Software Forum is a free forum created for Alpha Software Developer Community to ask for help, exchange ideas, and share solutions. Alpha Software strives to create an environment where all members of the community can feel safe to participate. In order to ensure the Alpha Software Forum is a place where all feel welcome, forum participants are expected to behave as follows:
  • Be professional in your conduct
  • Be kind to others
  • Be constructive when giving feedback
  • Be open to new ideas and suggestions
  • Stay on topic


Be sure all comments and threads you post are respectful. Posts that contain any of the following content will be considered a violation of your agreement as a member of the Alpha Software Forum Community and will be moderated:
  • Spam.
  • Vulgar language.
  • Quotes from private conversations without permission, including pricing and other sales related discussions.
  • Personal attacks, insults, or subtle put-downs.
  • Harassment, bullying, threatening, mocking, shaming, or deriding anyone.
  • Sexist, racist, homophobic, transphobic, ableist, or otherwise discriminatory jokes and language.
  • Sexually explicit or violent material, links, or language.
  • Pirated, hacked, or copyright-infringing material.
  • Encouraging of others to engage in the above behaviors.


If a thread or post is found to contain any of the content outlined above, a moderator may choose to take one of the following actions:
  • Remove the Post or Thread - the content is removed from the forum.
  • Place the User in Moderation - all posts and new threads must be approved by a moderator before they are posted.
  • Temporarily Ban the User - user is banned from forum for a period of time.
  • Permanently Ban the User - user is permanently banned from the forum.


Moderators may also rename posts and threads if they are too generic or do not property reflect the content.

Moderators may move threads if they have been posted in the incorrect forum.

Threads/Posts questioning specific moderator decisions or actions (such as "why was a user banned?") are not allowed and will be removed.

The owners of Alpha Software Corporation (Forum Owner) reserve the right to remove, edit, move, or close any thread for any reason; or ban any forum member without notice, reason, or explanation.

Community members are encouraged to click the "Report Post" icon in the lower left of a given post if they feel the post is in violation of the rules. This will alert the Moderators to take a look.

Alpha Software Corporation may amend the guidelines from time to time and may also vary the procedures it sets out where appropriate in a particular case. Your agreement to comply with the guidelines will be deemed agreement to any changes to it.



Bonus TIPS for Successful Posting

Try a Search First
It is highly recommended that a Search be done on your topic before posting, as many questions have been answered in prior posts. As with any search engine, the shorter the search term, the more "hits" will be returned, but the more specific the search term is, the greater the relevance of those "hits". Searching for "table" might well return every message on the board while "tablesum" would greatly restrict the number of messages returned.

When you do post
First, make sure you are posting your question in the correct forum. For example, if you post an issue regarding Desktop applications on the Mobile & Browser Applications board , not only will your question not be seen by the appropriate audience, it may also be removed or relocated.

The more detail you provide about your problem or question, the more likely someone is to understand your request and be able to help. A sample database with a minimum of records (and its support files, zipped together) will make it much easier to diagnose issues with your application. Screen shots of error messages are especially helpful.

When explaining how to reproduce your problem, please be as detailed as possible. Describe every step, click-by-click and keypress-by-keypress. Otherwise when others try to duplicate your problem, they may do something slightly different and end up with different results.

A note about attachments
You may only attach one file to each message. Attachment file size is limited to 2MB. If you need to include several files, you may do so by zipping them into a single archive.

If you forgot to attach your files to your post, please do NOT create a new thread. Instead, reply to your original message and attach the file there.

When attaching screen shots, it is best to attach an image file (.BMP, .JPG, .GIF, .PNG, etc.) or a zip file of several images, as opposed to a Word document containing the screen shots. Because Word documents are prone to viruses, many message board users will not open your Word file, therefore limiting their ability to help you.

Similarly, if you are uploading a zipped archive, you should simply create a .ZIP file and not a self-extracting .EXE as many users will not run your EXE file.
See more
See less

API-call questions

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    API-call questions

    Hi,

    I'm trying to get an API call FindFirstFileA() working. This API-function needs a structure. Not to pass information to the API-function but the API-function fills this structure, in this case WIN32_FIND_DATA, with file information, which you can use. The members of this structure have information about the First File Found. I build this structure with the 'declarestruct' command and pass this as a parameter. This parameter is the pointer to the structure.

    This structure has nested structures and I declared them as follows:

    declarestruct mystruct E1,E2,E3,(E4a,E4b),(E5a,E5b),E6, etc.

    Can someone confirm the syntax I used here? At least the program doesn't complain about this construction at compile time, I think this is positive ;-)

    The FindFirstFileA() function returns a HANDLE to a FileFind object and the only variable type that doesn't complain is the "A" type. All other types deliver a variable type mismatch message. Where does this A-type variable stand for? Is that: one of all the other known Alphas var-types or can this also be a type unknown the Alpha types. This handle is passed to the FindNextFile() API-function. But that's for the future.

    I discovered that I could write:

    declarestruct flname C255text
    declarestruct WIN32_FIND_DATA L1dwFileAttrib,(L1ftCreationTimeLow, L1ftCreationTimeHigh), etc. its very long.
    declare FindFirstFileA L(flname)(WIN32_FIND_DATA)

    dim result as A
    dim fn as P 'pointer
    dim fd as P 'pointer
    fn.filename = c:\*.txt
    result = FindFirstFileA(fn,fd)
    findclose(result)

    I can't get access to the members of fd.dwFileAttrib, fd.ftCreationTimeLow etc. Actually I need the pointer address of WIN32_FIND_DATA. I see that you can pass information to the function, get something returned from the function such as "result" but if you pass a structure in the hope the calling function fills it, it doesn't work. Or at least it works but I can't access it. I know that it is a very delicate chain of things that you have to do in the right way. At this moment I'm trying to get clear what I'm doing is right/wrong and even it maybe just impossible in A5v5. The manual(s) and the examples I found on sites show only straightforward examples, I didn't see constructions like I need. Maybe someone has an example for these constructions.

    Thanks for your time reading this,

    Marcel
    Marcel

    I hear and I forget. I see and I remember. I do and I understand.
    ---- Confusius ----

    #2
    RE: API-call questions

    Without attempting to answer the specifics of your question, have you realized that Alpha Five already has functions to get the attributes of a file, the date and time last updated, etc? Do you need the function you are laboring so hard to construct?

    Comment


      #3
      RE: API-call questions

      Marcel,

      Our engineers recommend that you use TYPE ... END TYPE instead of DECLARESTRUCT.

      http://support.alphasoftware.com/xbasic_reference/language/type___end_type.htm

      Comment


        #4
        RE: API-call questions

        Hi Peter,

        I'm aware of this. This has to do with the possibility to find files with the archive attributes set off. The Alpha functions filefind.get() and filefind.get_recurse() doesn't collect these files. These functions are a kind of "blind".

        On the other hand I dive into a part of Alpha I find very interesting.

        Marcel
        Marcel

        I hear and I forget. I see and I remember. I do and I understand.
        ---- Confusius ----

        Comment


          #5
          RE: API-call questions

          Peter - There are bugs in the file find and similar functions in A5 depending upon
          the file attributes, it doesn't find cetain file attribute combinations

          Marcel - I have been struggling with my own API call issues. There are definite problems in creating an equivalent construct. Many work fine, many I've not been able to get working.

          Ed - All of the current documentation is woefully inadequate.

          In the type-End-type declaration, how do you specify the structure size?

          How about some real world examples of byval aand byref calls of numerics (longs, integers, short integers, dwords etc), characters, logicals, Anytypes etc) showing some Visual Basic or C calls and the A5 equivalent?

          Where is the object length specified for Type-end type (probably not required, but there are no explanations)?

          Real examples and the comparitive code might be the best way.

          Regards,

          Ira
          Regards,

          Ira J. Perlow
          Computer Systems Design


          CSDA A5 Products
          New - Free CSDA DiagInfo - v1.39, 30 Apr 2013
          CSDA Barcode Functions

          CSDA Code Utility
          CSDA Screen Capture


          Comment


            #6
            RE: API-call questions

            Hi Edward,

            Yes, you told me already before, and I'm glad you changed the documentation, it helped me a lot to understand the construction of such structures.

            But when I comment the declarestruct and change it to a TYPE ... END TYPE the call of that particular piece of code still doesn't work. I'm am realistic enough to admit that my knowledge of XBasic is only a 30 day's old. So please have patience with me.

            Maybe that an example of API call where the declarestruct is changed into such construction with TYPE ... END TYPE might help.

            Marcel
            Marcel

            I hear and I forget. I see and I remember. I do and I understand.
            ---- Confusius ----

            Comment


              #7
              RE: API-call questions

              Hi Ira,

              Thanks Ira, I was struggling how to make it clear, couldn't find the right translations. You did a right job.

              Marcel - I have been struggling with my own API call issues. There are definite problems in creating an equivalent construct. Many work fine, many I've not been able to get working.

              Yes, that was also my experience, it's like walking on a high wire.

              Thanks,

              Marcel
              Marcel

              I hear and I forget. I see and I remember. I do and I understand.
              ---- Confusius ----

              Comment

              Working...
              X