Вызов собственного кода C из Mono
Привет,
Я создал одно моно-приложение для вызова метода C из общей библиотеки в Linux. Мой код указан ниже
using System; using System.Runtime.InteropServices; namespace testConsole { class MainClass { [DllImport("libTest.so",CharSet=CharSet.Auto,CallingConvention =CallingConvention.Cdecl, EntryPoint="testMethod",SetLastError=true ) ] public static extern void testMethod(); public static void Main (string[] args) { Console.WriteLine ("Hello World!"); testMethod(); Console.WriteLine ("Hello World!"); } } }
и мой общий библиотечный код выглядит так
#ifndef SFLOW_H #define SFLOW_H 1 #if defined(__cplusplus) extern "C" { #endif void testMethod() { } extern void testMethod1() { printf("This from C"); } #if defined(__cplusplus) } /* extern "C" */ #endif #endif /* SFLOW_H */
И я запускаю приложение, которое я могу загрузить в библиотеку C# с помощью DllImport. Но не в состоянии вызвать его метод.Как вызвать эту функцию testMethod () из моего моно-приложения ?
Пожалуйста, помогите мне...
Ошибка вроде этой
Привет, мир!
Необработанное Исключение: Система.EntryPointNotFoundException: testMethod
в (фантик удалось-к-родной) на testconsole.Основной класс:testMethod ()
в testConsole.Главный класс.основная система.String[] аргументы) [0x0000a] в /Home/Аруна/проекты/на testconsole/на testconsole Майне.СЅ:15
[Ошибка] фатальное необработанное исключение: система.EntryPointNotFoundException: testMethod
в (фантик удалось-к-родной) на testconsole.Основной класс:testMethod ()
в testConsole.Главный класс.основная система.String[] аргументы) [0x0000a] в /Home/Аруна/проекты/на testconsole/на testconsole Майне.СЅ:15
Нажмите любую клавишу, чтобы продолжить...