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

C++ DLL for C# entry point

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

Студворк — интернет-сервис помощи студентам
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
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
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) { ...

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

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

1
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
27.09.2012, 17:42 2
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
27.09.2012, 17:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.09.2012, 17:42
Помогаю со студенческими работами здесь

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

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
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru