{"_id":"@autoit-gui-skeleton/ags-wrapper-binary-call","_rev":"4-8cc8cba17fd39b9271789a6faca84426","name":"@autoit-gui-skeleton/ags-wrapper-binary-call","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.0":{"name":"@autoit-gui-skeleton/ags-wrapper-binary-call","version":"1.0.0","description":"AGS package for the library BinaryCall. Write subroutines in C, call in AutoIt.","author":{"name":"v20100v","email":"vb20100bv@gmail.com","url":"https://github.com/v20100v"},"contributors":[{"name":"v20100v","email":"vb20100bv@gmail.com","url":"https://github.com/v20100v"}],"license":"MIT","keywords":["AGS","AutoIt","AutoIt-GUI-Skeleton","AGS-wrapper","BinaryCall"],"homepage":"https://autoit-gui-skeleton.github.io/tags/#Wrapper","repository":{"url":"https://github.com/autoit-gui-skeleton/ags-wrapper-binary-call.git","type":"git"},"bugs":{"url":"https://github.com/autoit-gui-skeleton/ags-wrapper-binary-call/issues"},"dependencies":{},"AGS":{"framework":{"version":"1.0.0"},"AutoIt":{"version":"3.3.14.5"},"wrapper":{"main":"BinaryCall.au3"}},"_id":"@autoit-gui-skeleton/ags-wrapper-binary-call@1.0.0","dist":{"shasum":"39a85bec13cac1751220b9e5847b78a1918b61f5","tarball":"https://registry.npmjs.org/@autoit-gui-skeleton/ags-wrapper-binary-call/-/ags-wrapper-binary-call-1.0.0.tgz","integrity":"sha512-UTTw09P99O1eEt+MPYcJqCneUoNgBnauPNw8bItLCxVDsxSnUvyabQX9W7zdEEEMmBRMnMsi4a0W5zqLLDBPqQ==","fileCount":39,"unpackedSize":1063558,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcCnUBCRA9TVsSAnZWagAAxqoQAJqUrBm/E0dzHuxKknPy\nvxheXA7KeXaOSuoE6Nfk3Ic1qF8qQ7XRaBX+0qPh4QSgMjqMCr4Y2nyNwXd6\nrum8fYy8itRteHuMse5JOvwRXFQwVTQOI9SdLFAwNUmKTmYoU2Cpc/uav6+y\n92FMFI/zymh+vIEct3jZrr4XCEku0bGxstQTpDA06YdzGl5dEn2Ps+nJFJMt\nwsitnnzobAMuQYfcLZBmwpCERW9qJ3qLXCkv0mIArhxsrO1cwGiMNhDALKPe\nEh4nHy2dMvqh8L1Rx5Qik5vA1iTP3o1ZS68jAuMjGAtI6wh4M6lJ+eEom9f2\n7Tavdmocu/zw2phu9Zluuci373rSZZ2V7V2St2R975pDIYnHUeOvefvEkmOm\nSZuadEdARPPQCIs/D+K05LtnDirUjIjbbXVAlzlsSezGBqtJQCJQTGamNuwa\nOUsGn+TUAdQujBErP2Sa2VVLgaDVruYqaPjwKEu5YygYRSmF90JIQ/nOpFZV\nimh7gZCN5Sncf9udh/d9oe7GConoXfPPn5ydArIzYcw6n0mooOvK9MTpAx8+\nftAUwXHUBYY7+LrSu2+e/OnZLA+Lna6v2vuThb1ScMO7vwDCzxaGYzs9hTrI\nRSh46rCQ+YcMO1JP1a/tsh7RaPXT9wEHn2q6Es9z201uLjKxydLTAbQcjmQE\n5+Bh\r\n=ybUE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHDBM6wFgnB9hnJsYSuJ+W5jqAAONmD5m0kqVuzfZyAdAiEAhA1C0n92aTb0+1GLr5Qy7lWI2AKoh+dMKVsyjsSt78Q="}]},"maintainers":[{"name":"v20100v","email":"vb20100bv@gmail.com"}],"_npmUser":{"name":"v20100v","email":"vb20100bv@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ags-wrapper-binary-call_1.0.0_1544189184959_0.3920325167246306"},"_hasShrinkwrap":false},"1.0.1":{"name":"@autoit-gui-skeleton/ags-wrapper-binary-call","version":"1.0.1","description":"AGS package for the library BinaryCall. Write subroutines in C, call in AutoIt.","author":{"name":"v20100v","email":"vb20100bv@gmail.com","url":"https://github.com/v20100v"},"contributors":[{"name":"v20100v","email":"vb20100bv@gmail.com","url":"https://github.com/v20100v"}],"license":"MIT","keywords":["AGS","AutoIt","AutoIt-GUI-Skeleton","AGS-wrapper","BinaryCall"],"homepage":"https://autoit-gui-skeleton.github.io/","repository":{"url":"https://github.com/autoit-gui-skeleton/ags-wrapper-binary-call.git","type":"git"},"bugs":{"url":"https://github.com/autoit-gui-skeleton/ags-wrapper-binary-call/issues"},"dependencies":{},"AGS":{"framework":{"version":"1.0.0"},"AutoIt":{"version":"3.3.14.5"},"wrapper":{"main":"BinaryCall.au3"}},"_id":"@autoit-gui-skeleton/ags-wrapper-binary-call@1.0.1","dist":{"shasum":"7716f163aaa46eb9e3e7c179d666465773c0d6a6","tarball":"https://registry.npmjs.org/@autoit-gui-skeleton/ags-wrapper-binary-call/-/ags-wrapper-binary-call-1.0.1.tgz","integrity":"sha512-rGeIqqlinF9AKyDAannqaDTvhGFXWnGLaT0wihGhuPdeH4O0oyZTdZG4H+l8v2qXScnHwzZ5SPhVwqLWWfBmZQ==","fileCount":39,"unpackedSize":1063662,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcCnqhCRA9TVsSAnZWagAA63oP/2KphXCetLCbVBKg7c1K\nbuPKEoQApmHLrR6TdxlAR/j8bS2X0dUlGVsE7gBymN4WalgVDvj5Gulc3wuY\nBcO2rkn/8/XDqMKtnHUhZ/uRuZjjEkC3A0jqJvSxVMi/ETkdYGWxbHPEeXIJ\nInlwjrgLTZ/qwZJ6IoM93NIVvhREmKiKeQBcJCKqB6nDG9AAUA78iSo7qb/v\nns6ix2VMx4ix114BsLHEV6hWRgjiDY3+aOXxFVqAk+HPRPf+6v+HOb5o+EB9\nKxAyBcOUmUfYOdiryRvpa9xmtebvZuwtcAlDlPSsJ6Coyvt374sG6L0lcND0\nrwcDO+t5vVdBWeiB/JpbQx/hH9Lra/QSFdz3ieBBQgkQ2m6nye493VavDtnv\nLfDi1+OPo3n5HewcqMX9BdCbbfJyTzDmivXHfY10AQ6u3JC5WcscTk0yldfT\nafycY0JOzRnhrfVuu8KCq1EOJuirerykD7TcDXDyf9stZoV2DdxEsaNXalQN\ncFxAzq6wN3DdULSqTCYond4eqEbev2rO1EIqPtZ0MLzR32V+Cc7vWWWU6gNm\n0yG8CEpvPoLLVZfISSbnJyoE/K6pW9GWtFWcGdDkXhjvKXEdLY27mECctm6K\nC10FCm+wcGwOAp1hQsbUcITgztcn23i/7DhWKIG7LMsQv1t9YV7mSLly2nMP\nczZR\r\n=Kekw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCGz8zStgYqq/xXARaNvsT+MsDdozWsVNI7VIeWHu/w7wIgfJSdmDGawEfNfva3kgmnuAXia8+hCWI2gUT+H+HGWaE="}]},"maintainers":[{"name":"v20100v","email":"vb20100bv@gmail.com"}],"_npmUser":{"name":"v20100v","email":"vb20100bv@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ags-wrapper-binary-call_1.0.1_1544190625103_0.6705067460530858"},"_hasShrinkwrap":false},"1.0.2":{"name":"@autoit-gui-skeleton/ags-wrapper-binary-call","version":"1.0.2","description":"AGS package for the library BinaryCall. Write subroutines in C, call in AutoIt.","author":{"name":"v20100v","email":"vb20100bv@gmail.com","url":"https://github.com/v20100v"},"contributors":[{"name":"v20100v","email":"vb20100bv@gmail.com","url":"https://github.com/v20100v"}],"license":"MIT","keywords":["AGS","AutoIt","AutoIt-GUI-Skeleton","AGS-wrapper","BinaryCall"],"homepage":"https://autoit-gui-skeleton.github.io/","repository":{"url":"https://github.com/autoit-gui-skeleton/ags-wrapper-binary-call.git","type":"git"},"bugs":{"url":"https://github.com/autoit-gui-skeleton/ags-wrapper-binary-call/issues"},"dependencies":{},"AGS":{"framework":{"version":"1.0.0"},"AutoIt":{"version":"3.3.14.5"},"wrapper":{"main":"BinaryCall.au3"}},"_id":"@autoit-gui-skeleton/ags-wrapper-binary-call@1.0.2","dist":{"shasum":"44411014608dad03d61b02b96a9b6fbba6fd2cf7","tarball":"https://registry.npmjs.org/@autoit-gui-skeleton/ags-wrapper-binary-call/-/ags-wrapper-binary-call-1.0.2.tgz","integrity":"sha512-9wXZom8XMJtNstC+XG84rnxSk0xUVNNO0oIkAc7rjqP5HRz8bPPNtcCkf8IFw4XCk65RisRAFPrbFb9vaW3flA==","fileCount":39,"unpackedSize":1063656,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcCnwiCRA9TVsSAnZWagAA944QAIQKgWVm88jd9GDioege\nGTl/H+NxqYQeXrUynmD6kI0iZ6fa3Ka64dRxraxTbJijpKmtI3Uii3MQfLos\nI/FVGecKd8hgCIJhpN5xYDLancRqYv8U3HFBPgLnBWbujDKSc2fDaQA+zDc6\nEZ367SNKyVMD69L/aBaZ6fNJpWegzDM+9Q/fBVTq3PZCLH6xYQIFWJl5sE1e\n8t4M6QJE62QfJt/f5JNcWqcKZrzIo7+SI5i2dfRCgKNfDurSBmQ7G6Umg+Y4\nBy4WOhxZGSgLvIST5Pp7Y9R+GWg4HAQo1zL850Qmltup0vd/fBQQu6KuO49i\nXvApB2l8rimGlJLQ/cJkxpkv34iOBvNEFO0GtHAScvcmF+uqHRLuKTJ3Q1gk\nc0o5e+m1VHnygoIwlcGXif1T0olQjQsuYOSphKdCYmdHFj03Tf2uYpYYg1aP\n3ogiSikbTkFk3mLQdlqnt+gVLhnNUL9adIl2RBHpvylhzprD6ONNhcGeIcbf\nb6aYbtvSBAXXpDvkSyzFqFKhwQt/ixwOUrjDBvunGPqfjGH4dWLZ+CJeQ2Ef\nW4eh8qN7/yQwO8hJwNlNrAwbzzpavpP5ZQYbZsTsbMoyUOaY8bzLZxKipwKz\nLaIZMqTWQZ+30gr0pd8XOrnnUxt0EFFy5blnopLTTsOUIi3eD03CvUf+9nbD\nOgah\r\n=0vui\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDs+zc3YMUgLLWmpv/DnD7R1kwj8YKALPHK5EsZlsg15gIhAKuap89TVVgc0jp4/IwaS7dvpkztOrf21Dqc0FIMwvqX"}]},"maintainers":[{"name":"v20100v","email":"vb20100bv@gmail.com"}],"_npmUser":{"name":"v20100v","email":"vb20100bv@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ags-wrapper-binary-call_1.0.2_1544191010235_0.5735774745237547"},"_hasShrinkwrap":false},"1.0.3":{"name":"@autoit-gui-skeleton/ags-wrapper-binary-call","version":"1.0.3","description":"AGS package for the library BinaryCall created by Ward. Write subroutines in C, call in AutoIt.","author":{"name":"v20100v","email":"vb20100bv@gmail.com","url":"https://github.com/v20100v"},"contributors":[{"name":"v20100v","email":"vb20100bv@gmail.com","url":"https://github.com/v20100v"}],"license":"MIT","keywords":["AGS","AutoIt","AutoIt-GUI-Skeleton","AGS-wrapper","BinaryCall"],"homepage":"https://autoit-gui-skeleton.github.io/","repository":{"url":"git+https://github.com/autoit-gui-skeleton/ags-wrapper-binary-call.git","type":"git"},"bugs":{"url":"https://github.com/autoit-gui-skeleton/ags-wrapper-binary-call/issues"},"dependencies":{},"AGS":{"framework":{"version":"1.0.0"},"AutoIt":{"version":"3.3.14.5"},"wrapper":{"main":"BinaryCall.au3"}},"gitHead":"d3794678c76f30dc509f19a742abda3ef23e2dfe","_id":"@autoit-gui-skeleton/ags-wrapper-binary-call@1.0.3","_nodeVersion":"14.18.3","_npmVersion":"6.14.15","dist":{"integrity":"sha512-nL/NN6nCHXuGQEmh2FT4ztP8e+6zgr/yEgq1SvNcorRcKVp4TFmZf0zn+P3HpO11BLlbTaKLaa0i66XrjjOMkw==","shasum":"4a1506f14f03ea8fd1bd99cc529cb37b9ee17c35","tarball":"https://registry.npmjs.org/@autoit-gui-skeleton/ags-wrapper-binary-call/-/ags-wrapper-binary-call-1.0.3.tgz","fileCount":35,"unpackedSize":1053893,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFZTu9gS/TSoJDOk8qMb0+kMUYWW+IVS6oY1SsYVD2p7AiBkVkykms1gzUlIV+g3cRUs2VtSNxt6Ls7e2J6+oefgsg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjf3WDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpCJQ//UvzXj6pOabc5zRymgNBVODNqjZ5GBKr3oEJ5xhZ+bbXpffKt\r\nax1Jim9YifujXFKcU0I2PqgboTOHirs3tg4YOo4rrIVRu8BYbleNrGeU30D4\r\nUYKWT40loG/eq1ncYASUvpsTxKsKxbbXM7hrJ5Bv0+stwmFCxn5EBTVCxfhq\r\nIulqmtzxKoL3yLR0PtJyTRirQ9hlWvovjU76M1IQEgKtIsdmeayEE7/5o9VZ\r\nbmYQHzwSXlwg9xR7x3cMbaqboKKdwv6njxCrZkl73P1iNXsVIoor1fGLzp+8\r\nIW+OAK+Byvjl9EtqvVf5pWnq1EzbLBxOhHs8m7niZ8u03/5G/KE5M7FJgw/I\r\nZn+j8ZVMIW6Fcte2CxpVCeOnAjR69Q081YNl3hX44T1fOHr4e/Wcui1F/c6a\r\nWV4utZiHRJmH1rQpe3/UJwopyn7THyi/URaTld/elo5sDFq3JGSffQCvTLhU\r\nOlMFtXijPNzcCc7X0szRRV1+jPoDZHmm0+Yc7NQZUHYWIIuzGlgzDcU2UKfr\r\nD5SgSJCBgvplCRcmTuNL7WQQhz7VICVPSgIv3UegHODIOyi281mB0LkTl1mn\r\n+byeJfgltpivwMAmkSrXch8zHcFQX/q1yZuLkDEFNTt2U59udtR5tOEU/tFi\r\nCe/wMOhx6QIopqfYIo4yY45gcATtMMcm/PU=\r\n=ZHQ2\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"v20100v","email":"vb20100bv@gmail.com"},"directories":{},"maintainers":[{"name":"v20100v","email":"vb20100bv@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ags-wrapper-binary-call_1.0.3_1669297538864_0.6612208855642696"},"_hasShrinkwrap":false}},"time":{"created":"2018-12-07T13:26:24.889Z","1.0.0":"2018-12-07T13:26:25.100Z","modified":"2022-11-24T13:45:39.168Z","1.0.1":"2018-12-07T13:50:25.273Z","1.0.2":"2018-12-07T13:56:50.420Z","1.0.3":"2022-11-24T13:45:39.077Z"},"maintainers":[{"name":"v20100v","email":"vb20100bv@gmail.com"}],"description":"AGS package for the library BinaryCall created by Ward. Write subroutines in C, call in AutoIt.","homepage":"https://autoit-gui-skeleton.github.io/","keywords":["AGS","AutoIt","AutoIt-GUI-Skeleton","AGS-wrapper","BinaryCall"],"repository":{"url":"git+https://github.com/autoit-gui-skeleton/ags-wrapper-binary-call.git","type":"git"},"contributors":[{"name":"v20100v","email":"vb20100bv@gmail.com","url":"https://github.com/v20100v"}],"author":{"name":"v20100v","email":"vb20100bv@gmail.com","url":"https://github.com/v20100v"},"bugs":{"url":"https://github.com/autoit-gui-skeleton/ags-wrapper-binary-call/issues"},"license":"MIT","readme":"AGS-wrapper-binary-call\r\n=======================\r\n\r\n> [AutoIt Gui Skeleton](https://autoit-gui-skeleton.github.io/) package for wrapping the library [BinaryCall](https://www.autoitscript.com/forum/topic/162366-binarycall-udf-write-subroutines-in-c-call-in-autoit/) created by [Ward's](https://www.autoitscript.com/forum/profile/10768-ward/). See this package on [npmjs.com](https://www.npmjs.com/package/@autoit-gui-skeleton/ags-wrapper-binary-call)\r\n\r\n\r\n\r\n<br/>\r\n\r\n## How to install AGS-wrapper-binary-call ?\r\n\r\nWe assume that you have already install [Node.js](https://nodejs.org/) and [Yarn](https://yarnpkg.com/lang/en/), for example by taking a [Chocolatey](https://chocolatey.org/). AGS framework use it for manage dependencies.\r\n\r\nTo add this package into your AutoIt project, just type in the root folder of your AGS project where the `package.json` is stored. You can also modify the `dependencies` property of this json file and use the yarn [install](https://yarnpkg.com/en/docs/usage) command. It is easier to use the add command :\r\n\r\n```\r\nλ  yarn add @autoit-gui-skeleton/ags-wrapper-binary-call --modules-folder vendor\r\n```\r\n\r\nThe property `dependencies` of the  `package.json` file is updated consequently, and all package dependencies, as well as daughter dependencies of parent dependencies, are installed in the `./vendor/@autoit-gui-skeleton/` directory.\r\n\r\nFinally to use this library in your AutoIt program, you need to include this library in the main program. There is no need for additional configuration to use it.\r\n\r\n```autoit\r\n#include './vendor/@autoit-gui-skeleton/ags-wrapper-binary-call/BinaryCall.au3'\r\n```\r\n\r\n\r\n\r\n<br/>\r\n\r\n## What is AGS (AutoIt Gui Skeleton) ?\r\n\r\n[AutoIt Gui Skeleton](https://autoit-gui-skeleton.github.io/) give an environment for developers, that makes it easy to build AutoIt applications. To do this AGS proposes to use conventions and a standardized architecture in order to simplify the code organization, and thus its maintainability. It also gives tools to help developers in recurring tasks specific to software engineering.\r\n\r\n> More information about [AGS framework](https://autoit-gui-skeleton.github.io/)\r\n\r\nAGS provides a dependency manager for AutoIt library. It uses the Node.js ecosystem and its dependency manager npm and its evolution Yarn. All AGS packages are hosted in npmjs.org repository belong to the [@autoit-gui-skeleton](https://www.npmjs.com/search?q=autoit-gui-skeleton) organization. And in AGS you can find two types of package :\r\n\r\n- An **AGS-component** is an AutoIt library, that you can easy use in your AutoIt project built with the AGS framework. It provides some features for application that can be implement without painless.\r\n- An **AGS-wrapper** is a simple wrapper for an another library created by another team/developer.\r\n\r\n> More information about [dependency manager for AutoIt in AGS](https://autoit-gui-skeleton.github.io//2018/07/10/ags_dependencies_manager_for_AutoIt.html)\r\n\r\n\r\n\r\n<br/>\r\n\r\n## BinaryCall : Write subroutines in C, call in AutoIt\r\n\r\n\r\n> According to the ward's documentation for BinaryCall, see https://www.autoitscript.com/forum/topic/162366-binarycall-udf-write-subroutines-in-c-call-in-autoit/\r\n\r\n\r\n### BinaryCall UDF - Write Subroutines In C, Call In AutoIt\r\n\r\nI have wrote a lot of binary code library for AutoIt before. I also discover\r\nmany ways to generate binary code for AutoIt in the past. However, all of them\r\nhave limitation or need some extra effort.\r\n\r\nRecently, I think I found the best and easiest way to generate the binary code.\r\nSo I wrote this UDF, may be my last one about binary code.\r\n\r\n\r\nThe Features:\r\n    * Both AutoIt x86 and x64 version are supported.\r\n    * Windows API and static variables can be use (code relocation supported).\r\n    * Decompression at run-time with smallest footprint LZMA decoder.\r\n    * Allocated memory blocks are released automatically.\r\n    * Most C source code works without modification.\r\n    * Two step or one step script generation, very easy to use.\r\n\r\n\r\nHow It Works:\r\n    1. The C source code must be compiled by MinGW GCC with \"-S -masm=intel\"\r\n       option. Output is GAS syntax assembly file.\r\n\r\n    2. BinaryCall Tool is able to convert the GAS syntax assembly file (*.s)\r\n       to FASM syntax (*.asm). During the conversion, global symbols will be\r\n       stored as \"Symbol Jump Table\" at the head of the file. The output file\r\n       should be able to be assembled to binary file under command line by\r\n       FASM.EXE. This syntax conversion is step 1.\r\n\r\n    3. The step 2 is to assemble the file. BinaryCall Tool will use the\r\n       embedded FASM to assemble every file twice to generate the relocation\r\n       table. \"BinaryCall.inc\" will be included automatically before\r\n       assembling to detect the Windows API and generate the \"API Jump table\".\r\n       All the results will be compressed and converted to AutoIt script output.\r\n\r\n    4. There are two major functions in the output script. _BinaryCall_Create()\r\n       function allocates memorys, decompress the binary, relocates the address\r\n       in memory, and fills the \"API Jump Table\".\r\n\r\n    5. _BinaryCall_SymbolList() converts the \"Symbol Jump Table\" to memory\r\n       addresses, and then store them as pointers in a DllStruct variable.\r\n\r\n    6. Finally, we can use DllCallAddress() to call the memory address stored\r\n       in the DllStruct.\r\n\r\n\r\nStep by Step Tutorial:\r\n\r\n    1. Write C source code:\r\n\r\n           #include <windows.h>\r\n           void main()\r\n           {\r\n               MessageBox(0, \"Hello\", \"Welcome Message\", 1);\r\n           }\r\n\r\n    2. Use GCC MinGW 32/64 to compile the source code:\r\n\r\n           gcc -S -masm=intel32 -m32 MessageBox.c\r\n\r\n    3. Use BinaryCall Tool \"GAS2AU3 Converter\", select \"MessageBox.s\":\r\n\r\n           If Not @AutoItX64 Then\r\n               Local $Code = '...'\r\n               Local $Reloc = '...'\r\n               Local $Symbol[] = [\"main\"]\r\n\r\n               Local $CodeBase = _BinaryCall_Create($Code, $Reloc)\r\n               If @Error Then Exit\r\n\r\n               Local $SymbolList = _BinaryCall_SymbolList($CodeBase, $Symbol)\r\n               If @Error Then Exit\r\n           EndIf\r\n\r\n    4. Paste the output script, call the main() in AutoIt:\r\n\r\n           #Include \"BinaryCall.au3\"\r\n\r\n           ; Paste output here\r\n\r\n           DllCallAddress(\"none:cdecl\", DllStructGetData($SymbolList, \"main\"))\r\n\r\n    5. Try to run it!\r\n\r\n\r\nChange Log:\r\n\r\n    v1.0\r\n        * Initial release.\r\n\r\n    v1.1\r\n        * A lot of improvement for GAS2ASM converter and FASM header file.\r\n        * Add many C Run-Time library as inline asm subroutines.\r\n        * Add command-line to argc/argv parser for easy calling main() function.\r\n        * Add ability to redirect stdio.\r\n\r\n          More C source code can work without modification in this version.\r\n          Following open source projects are tested.\r\n          And Yes, they can run as binary code library in AutoIt now.\r\n\r\n          SQLite 3.8.5\r\n          TCC 0.9.26\r\n          PuTTY beta 0.63\r\n\r\n    v1.2\r\n        * Dynamic-link library (DLL) calling is supported now.\r\n          If the C program requires a DLL file to run, just put it together\r\n\t  with the source file. BinaryCall Tool will searches *.dll and exports\r\n\t  all the symbols in these DLL files automatically. Of course, you need\r\n\t  these DLL files when run the output script. However, it also works if\r\n\t  you loaded them by last version of MemoryDll UDF.\r\n\r\n        * To add more Windows API library easily by editing the ini file.\r\n        * Better error handling and more error messages in output script.\r\n        * Add zero padding to avoid short jumps that crash the relocation table.\r\n        * BinaryCall Tool accepts drag and drop files now.\r\n        * Some small bug fixed.\r\n\r\n2015.1.21\r\nWard\r\n\r\n\r\n<br/>\r\n\r\n## About\r\n\r\n### Acknowledgments\r\n\r\nAcknowledgments for [Ward's](https://www.autoitscript.com/forum/profile/10768-ward/) work and its library [BinaryCall.au3](https://www.autoitscript.com/forum/topic/162366-binarycall-udf-write-subroutines-in-c-call-in-autoit/)\r\n\r\n\r\n### Contributing\r\n\r\nComments, pull-request & stars are always welcome !\r\n\r\n### License\r\n\r\nCopyright (c) 2018 by [v20100v](https://github.com/v20100v). Released under the MIT license.\r\n","readmeFilename":"README.md"}