I am also getting similar error, I followed the documentations, following are my codes
//simple.c
#include <gdnative_api_struct.gen.h>
#include <string.h>
const godot_gdnative_core_api_struct *api = NULL;
const godot_gdnative_ext_nativescript_api_struct *nativescript_api = NULL;
void *simple_constructor(godot_object *p_instance, void *p_method_data);
void simple_destructor(godot_object *p_instance, void *p_method_data, void *p_user_data);
godot_variant simple_get_data(godot_object *p_instance, void *p_method_data,
void *p_user_data, int p_num_args, godot_variant **p_args);
void GDN_EXPORT godot_gdnative_init(godot_gdnative_init_options *p_options) {
api = p_options->api_struct;
// Now find our extensions.
for (unsigned int i = 0; i < api->num_extensions; i++) {
switch (api->extensions[i]->type) {
case GDNATIVE_EXT_NATIVESCRIPT: {
nativescript_api = (godot_gdnative_ext_nativescript_api_struct *)api->extensions[i];
}; break;
default: break;
}
}
}
void GDN_EXPORT godot_gdnative_terminate(godot_gdnative_terminate_options *p_options) {
api = NULL;
nativescript_api = NULL;
}
void GDN_EXPORT godot_nativescript_init(void *p_handle) {
godot_instance_create_func create = { NULL, NULL, NULL };
create.create_func = &simple_constructor;
godot_instance_destroy_func destroy = { NULL, NULL, NULL };
destroy.destroy_func = &simple_destructor;
nativescript_api->godot_nativescript_register_class(p_handle, "simple", "Node2D",
create, destroy);
godot_instance_method get_data = { NULL, NULL, NULL };
get_data.method = &simple_get_data;
godot_method_attributes attributes = { GODOT_METHOD_RPC_MODE_DISABLED };
nativescript_api->godot_nativescript_register_method(p_handle, "simple", "get_data",
attributes, get_data);
}
typedef struct user_data_struct {
char data[256];
} user_data_struct;
void *simple_constructor(godot_object *p_instance, void *p_method_data) {
user_data_struct *user_data = api->godot_alloc(sizeof(user_data_struct));
strcpy(user_data->data, "World from GDNative!");
return user_data;
}
void simple_destructor(godot_object *p_instance, void *p_method_data, void *p_user_data) {
api->godot_free(p_user_data);
}
godot_variant simple_get_data(godot_object *p_instance, void *p_method_data,
void *p_user_data, int p_num_args, godot_variant **p_args) {
godot_string data;
godot_variant ret;
user_data_struct *user_data = (user_data_struct *)p_user_data;
api->godot_string_new(&data);
api->godot_string_parse_utf8(&data, user_data->data);
api->godot_variant_new_string(&ret, &data);
api->godot_string_destroy(&data);
return ret;
}
//gdscript
extends Node2D
func _ready():
var data = load("res://main.gdns").new()
data.get_data()
pass
func _process(delta):
$player.position.x += 5*delta
getting following errors
E 0:00:00.522 get_dynamic_library_symbol_handle: Can't resolve symbol godot_gdnative_init, error: 127.
<C++ Error> Method failed. Returning: ERR_CANT_RESOLVE
<C++ Source> platform/windows/os_windows.cpp:2415 @ get_dynamic_library_symbol_handle()
<Stack Trace> main.gd:7 @ _ready()
E 0:00:00.529 initialize: Failed to obtain godot_gdnative_init symbol
<C++ Source> modules/gdnative/gdnative.cpp:360 @ initialize()
<Stack Trace> main.gd:7 @ _ready()
E 0:00:00.537 get_symbol: No valid library handle, can't get symbol from GDNative object
<C++ Source> modules/gdnative/gdnative.cpp:501 @ get_symbol()
<Stack Trace> main.gd:7 @ _ready()
E 0:00:00.544 init_library: No nativescript_init in "res://native c/bin/lib-windows.dll" found
<C++ Source> modules/gdnative/nativescript/nativescript.cpp:1506 @ init_library()
<Stack Trace> main.gd:7 @ _ready()