Похоже, вы пытаетесь создать классическую Win32 DLL с экспортом в стиле Win32?(Экспорт в стиле Win32 - это то, что обнаруживает DllImport.) Это невозможно сделать с помощью управляемого кода (C # или управляемого C ++);Насколько я знаю, для этого вам нужно будет использовать неуправляемый C / C ++.
Программирование Windows Чарльзом Петцольдом или аналогичная книга по программированию Win32 может быть хорошим местом для начала;или найдите образец Win32 DLL «Hello World».Или просто создайте проект Win32 DLL в Visual Studio и посмотрите на файлы, которые он создает для вас, вероятно, должен быть какой-то текст-заполнитель, чтобы начать работу.
Управляемый код использует файлы, которые также имеют .dll в качестверасширения, но они на самом деле являются контейнерами для управляемого кода и не имеют точек входа в стиле Win32, поэтому другой код, ожидающий точки входа Win32, не может их использовать.Их иногда называют «управляемыми сборками», а не библиотеками, чтобы избежать путаницы.
-
Обновление - возможен альтернативный вариант: вы можете создать то, что называется "DLL смешанного режима ", которая содержит как собственный код, так и управляемый код.Эта DLL может иметь управляемый класс C #, который вы хотите «экспортировать», и небольшое количество смешанного C / C ++, который экспортирует API в стиле Win32.Хотя это возможно, это не обязательно хорошая вещь: код, ожидающий загрузки простой библиотеки Win32 DLL, может не ожидать загрузки CLR;и вы можете столкнуться с проблемами, если у процесса уже есть конфликтующая версия CLR, уже загруженная.DLL-библиотеки смешанного режима, как правило, более полезны для того, чтобы сборка C # могла повторно использовать код C / C ++, вместо того, чтобы позволить C # / управляемому коду маскироваться под Win32 DLL.