## paxCompiler for MS VC++. Loading compiled scripts.

>     #include "stdafx.h"
>     #include "paxcompilerlib.h"

>     DWORD h_show_message;

>     void show_message(char * s)
>     {
>         printf(s);
>     }

>     void create_compiled_script()
>     {
>         DWORD hc = PaxCompiler_Create();
>         DWORD hl = PaxPascalLanguage_Create();
>         DWORD hp = PaxProgram_Create();

>         PaxCompiler_Reset(hc);
>         PaxCompiler_RegisterLanguage(hc, hl);

>         h_show_message = PaxCompiler_RegisterRoutineEx(hc, 0, "ShowMessage", PaxTypeVOID, ccCDECL);
>         PaxCompiler_RegisterParameter(hc, h_show_message, PaxTypePCHAR, false);

>         PaxCompiler_AddModule(hc, "1", "Pascal");
>         PaxCompiler_AddCode(hc, "1", "begin");
>         PaxCompiler_AddCode(hc, "1", "  ShowMessage('Hello');");
>         PaxCompiler_AddCode(hc, "1", "end.");

>         if (PaxCompiler_Compile(hc, hp))
>         {
>     	PaxProgram_SaveToFile(hp, "1.bin");
>     	printf("Compiled script has been created!\n");
>         }
>         else
>         {
>             printf("there are errors:\n");
>             for (int i = 0; i < PaxCompiler_GetErrorCount(hc); i++)
>             {
>     		printf(PaxCompiler_GetErrorMessage(hc, i));
>             }
>         }

>         PaxProgram_Destroy(hp);
>         PaxPascalLanguage_Destroy(hl);
>         PaxCompiler_Destroy(hc);
>     }

>     void load_compiled_script()
>     {
>         DWORD hp = PaxProgram_Create();
>         PaxProgram_LoadFromFile(hp, "1.bin");
>         PaxProgram_SetAddress(hp, h_show_message, &show_message);
>         PaxProgram_Run(hp);
>         PaxProgram_Destroy(hp);
>     }

>     int main(int argc, char* argv[])
>     {
>             HMODULE h_lib = LoadPaxCompilerLib();
>             if (h_lib != 0)
>             {
>     			create_compiled_script();
>     			printf("Load and run compiled script:\n");
>     			load_compiled_script();
>             }
>             FreePaxCompilerLib(h_lib);

>             getchar();
>             return 0;
>     }

Copyright © 2006-2008 VIRT Laboratory. All rights reserved.