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'.