My final solution for 2nd problem:

in userimg.jl I have added this line:

demo(x::Vector{UInt8}) = lowercase(utf8(x)).data

and in start_func.c I have this code:

#include <julia.h>
#include <stdio.h>
int main()
{
        jl_init_with_image(NULL, "libMyJuliaImage.dll");
        int utf8_length = 6;    
        jl_value_t* array_type1 = jl_apply_array_type(jl_uint8_type, 1);
jl_array_t* utf8_str = jl_alloc_array_1d(array_type1, utf8_length);
        JL_GC_PUSH1(&utf8_str);
        char* data = jl_array_data(utf8_str);
        data[0] = 'H';
        data[1] = 'E';
        data[2] = 'L';
        data[3] = 'L';
        data[4] = 'O';
        data[5] = '!';
        jl_function_t *func  = jl_get_function(jl_current_module, "demo");
        jl_array_t* returned_data = jl_call1(func, (jl_value_t*) utf8_str);
        char *ret_data = (char*)jl_array_data(returned_data);
        int len = jl_array_len(returned_data);
        JL_GC_POP();
        int ret_val = 0;
        jl_atexit_hook(ret_val);
        return ret_val;
}

In julia i need return UTF8String.data and in C I again work with 
uint8(char) array without '\0'.

Reply via email to