2 / 2 / 1
Регистрация: 11.06.2012
Сообщений: 18

C++ DLL for C# entry point

27.09.2012, 12:49. Показов 2368. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
heared ->
C++
1
2
3
4
5
6
7
8
9
#ifndef _DLLTEST_H_
#define _DLLTEST_H_ 
 
    #include <string>
    using namespace std;
 
    extern "C" __declspec(dllexport) string f1(string); 
 
#endif
library ->
C++
1
2
3
4
5
6
#include "test_library.h"
 
extern "C" __declspec(dllexport) string f1(string str)
{
    return str+"ololo";
}
using ->
C#
1
2
3
4
5
6
7
8
       [DllImport("D:\\Developments\\C_Project\\test_library\\Debug\\test_library.dll")]
        public static extern string f1(string str);
 
        public Form1()
        {
            MessageBox.Show(f1("ololo"));
            InitializeComponent();
        }
путь верный, using System.Runtime.InteropServices; написал)
однако вылазит сообщение, что не найдена точка входа f1 в DLL. что не так?(

Добавлено через 2 минуты
кое-что изменил, теперь вылазит

"Необработанное исключение типа "System.AccessViolationException" произошло в test_form.exe

Дополнительные сведения: Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена."
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.09.2012, 12:49
Ответы с готовыми решениями:

WinMain entry point
Здравствуйте! Я только начал изучать WinAPI и, естественно, периодически заглядываю в MSDN. Но сразу же столкнулся с недопониманием. ...

Defines the entry point for the console application
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int Prime(unsigned long a) { unsigned long i; if (a ==...

Defines the entry point for the console application
// structura.cpp : Defines the entry point for the console application. // #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include...

1
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
27.09.2012, 17:42
skiminock, вот так сработает . А что-бы кто-то std::string в С SHARP
перекидывал, такого не слыхал .
Спросите в разделе C# .NET

MyDLL.dll
C++
1
2
3
4
5
6
#include <stdio.h>
 
extern "C" __declspec(dllexport) char * GetTextFromDLL()
{   
    return "Hello from DLL!!!";
}
Form.h

C#
1
2
3
4
5
6
7
8
  [DllImport("MyDLL.dll")]
        public extern static IntPtr GetTextFromDLL();
                           
        public Form1()
        {
            var ptr = GetTextFromDLL();
            MessageBox.Show(Marshal.PtrToStringAnsi(ptr));
            InitializeComponent();
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.09.2012, 17:42
Помогаю со студенческими работами здесь

LINK : fatal error LNK1561: entry point must be defined
Создан как Empty project Код программы: namespace program { void main() { } }

Ошибка Can't find DLL entry point CryptEnumProvidersA in advapi32.dll
Проблема вот в чем. Объявляем CryptEnumProviderTypesA Private Declare Function CryptEnumProviders Lib 'advapi32.dll' Alias...

Entry point must be defined при компилировании dll библиотеки
Когда компилирую dll библиотеку, появляется ошибка entry point must be defined. Весь интернет перерыл, но так и не нашёл решения. Обычно...

"Can't find DLL entry point createPolygonRgn in gdi32.dll"
Рисую семи-сегментный индикатор... Нарисовал 1 сегмент Line-ом, потом осознал, что мне потом понадобится менять цвет сегмента, нашел в...

Entry Point
Каким образом можно сделать entry point не в функции main(), а в какой-либо другой? Меня это интересует потому, что в зависимости от...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

Новые блоги и статьи
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 24.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 24.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 22.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
Lazarus. Таблица с объединением ячеек.
Massaraksh7 21.03.2025
Понадобилась представление на экране таблицы с объединёнными ячейками. И не одной, а штук триста, и все разные. На Delphi я использовал для этих целей TStringGrid, и то, кривовато получалось. А в. . .
Async/await в Swift: Асинхронное программировани­е в iOS
mobDevWorks 21.03.2025
Асинхронное программирование долго было одной из самых сложных задач для разработчиков iOS. В течение многих лет мы сражались с замыканиями, диспетчеризацией очередей и обратными вызовами, чтобы. . .
Колмогоровская сложность: Приёмы упрощения кода
ArchitectMsa 21.03.2025
Наверное, каждый программист хотя бы раз сталкивался с кодом, который напоминает запутанный лабиринт — чем дальше в него погружаешься, тем сложнее найти выход. И когда мы говорим о сложности кода, мы. . .
PostgreSQL в Kubernetes: Подготовка кластера и настройка
Mr. Docker 21.03.2025
Когда доходит до контейнеризации баз данных и особенно таких требовательных к ресурсам системах как PostgreSQL, многие команды до сих пор колеблются, прежде чем перенести их в контейнерную. . .
C++26: Индексирование пакетов и метапрограммиро­вание
bytestream 21.03.2025
Эволюция C++ продолжается стремительными темпами – каждый новый стандарт приносит функциональность, о которой мы мечтали годами. Звучит слишком громко? Если вы когда-либо боролись с вариадическими. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru