Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
10 / 10 / 5
Регистрация: 04.07.2009
Сообщений: 112
1

Подключить в С++ Builder dll созданую в matlab

03.05.2010, 00:26. Показов 2584. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет!
Создал в матлабе dll -ку, теперь хочу подключить ее в Builder. Вместе с длл-кой есть созданные такие файлы:
zagotovkaNLib.c , zagotovkaNLib.dll, zagotovkaNLib.exp, zagotovkaNLib.exports, zagotovkaNLib.h, zagotovkaNLib.lib, zagotovkaNLib.prj, zagotovkaNLib_mcc_component_data.c

что надо для подключения, как ее подключить помогите плз.
Вот что в файле zagotovkaNLib.c:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
/*
 * MATLAB Compiler: 4.8 (R2008a)
 * Date: Sun May 02 14:09:12 2010
 * Arguments: "-B" "macro_default" "-t" "-L" "C" "-W" "lib:zagotovkaNLib" "-T"
 * "link:lib" "zagotovkaN.m" "libmmfile.mlib" 
 */
 
#include <stdio.h>
#define EXPORTING_zagotovkaNLib 1
#include "zagotovkaNLib.h"
#ifdef __cplusplus
extern "C" {
#endif
 
extern mclComponentData __MCC_zagotovkaNLib_component_data;
 
#ifdef __cplusplus
}
#endif
 
 
static HMCRINSTANCE _mcr_inst = NULL;
 
 
#if defined( _MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__) || defined(__LCC__)
#ifdef __LCC__
#undef EXTERN_C
#endif
#include <windows.h>
 
static char path_to_dll[_MAX_PATH];
 
BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, void *pv)
{
    if (dwReason == DLL_PROCESS_ATTACH)
    {
        if (GetModuleFileName(hInstance, path_to_dll, _MAX_PATH) == 0)
            return FALSE;
    }
    else if (dwReason == DLL_PROCESS_DETACH)
    {
    }
    return TRUE;
}
#endif
#ifdef __cplusplus
extern "C" {
#endif
 
static int mclDefaultPrintHandler(const char *s)
{
  return mclWrite(1 /* stdout */, s, sizeof(char)*strlen(s));
}
 
#ifdef __cplusplus
} /* End extern "C" block */
#endif
 
#ifdef __cplusplus
extern "C" {
#endif
 
static int mclDefaultErrorHandler(const char *s)
{
  int written = 0;
  size_t len = 0;
  len = strlen(s);
  written = mclWrite(2 /* stderr */, s, sizeof(char)*len);
  if (len > 0 && s[ len-1 ] != '\n')
    written += mclWrite(2 /* stderr */, "\n", sizeof(char));
  return written;
}
 
#ifdef __cplusplus
} /* End extern "C" block */
#endif
 
/* This symbol is defined in shared libraries. Define it here
 * (to nothing) in case this isn't a shared library. 
 */
#ifndef LIB_zagotovkaNLib_C_API 
#define LIB_zagotovkaNLib_C_API /* No special import/export declaration */
#endif
 
LIB_zagotovkaNLib_C_API 
bool MW_CALL_CONV zagotovkaNLibInitializeWithHandlers(
    mclOutputHandlerFcn error_handler,
    mclOutputHandlerFcn print_handler
)
{
  if (_mcr_inst != NULL)
    return true;
  if (!mclmcrInitialize())
    return false;
  if (!GetModuleFileName(GetModuleHandle("zagotovkaNLib"), path_to_dll, _MAX_PATH))
    return false;
  if (!mclInitializeComponentInstanceWithEmbeddedCTF(&_mcr_inst,
                                                     &__MCC_zagotovkaNLib_component_data,
                                                     true, NoObjectType,
                                                     LibTarget, error_handler,
                                                     print_handler, 208095, path_to_dll))
    return false;
  return true;
}
 
LIB_zagotovkaNLib_C_API 
bool MW_CALL_CONV zagotovkaNLibInitialize(void)
{
  return zagotovkaNLibInitializeWithHandlers(mclDefaultErrorHandler,
                                             mclDefaultPrintHandler);
}
 
LIB_zagotovkaNLib_C_API 
void MW_CALL_CONV zagotovkaNLibTerminate(void)
{
  if (_mcr_inst != NULL)
    mclTerminateInstance(&_mcr_inst);
}
 
LIB_zagotovkaNLib_C_API 
void MW_CALL_CONV zagotovkaNLibPrintStackTrace(void) 
{
  char** stackTrace;
  int stackDepth = mclGetStackTrace(_mcr_inst, &stackTrace);
  int i;
  for(i=0; i<stackDepth; i++)
  {
    mclWrite(2 /* stderr */, stackTrace[i], sizeof(char)*strlen(stackTrace[i]));
    mclWrite(2 /* stderr */, "\n", sizeof(char)*strlen("\n"));
  }
  mclFreeStackTrace(&stackTrace, stackDepth);
}
 
 
LIB_zagotovkaNLib_C_API 
bool MW_CALL_CONV mlxZagotovkaN(int nlhs, mxArray *plhs[],
                                int nrhs, mxArray *prhs[])
{
  return mclFeval(_mcr_inst, "zagotovkaN", nlhs, plhs, nrhs, prhs);
}
 
LIB_zagotovkaNLib_C_API 
bool MW_CALL_CONV mlfZagotovkaN()
{
  return mclMlfFeval(_mcr_inst, "zagotovkaN", 0, 0, 0);
}
Заранее благодарен!

Добавлено через 8 часов 13 минут
может както через h-файл? подскажите как?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.05.2010, 00:26
Ответы с готовыми решениями:

Dll, созданную в VB.NET, нада подключить к проге, написанную на С++Builder
Я написал на Vb.net библиотеку, и нада теперь её подключить к С++. Но дело в том что VB компелит...

Как при создании своей dll подключить туда сторонние dll
Здравствуйте, я работаю в связке C# - Oracle. Если коротко, то вопрос звучит так: &quot;Как при создании...

Как подключить dll (SmartCOM3.dll) к php через расширение php_com_dotnet?
Доброе время суток. Передо мной встала задача через php подцепить SmartCOM3.dll. В мануале...

Не получается подключить библиотеку Unmanaged.dll (Firefox nss3.dll)
Здравствуйте, начал изучать c#, очень понравилась тема декриптования, для начала решил из...

3
44 / 44 / 15
Регистрация: 23.09.2009
Сообщений: 63
03.05.2010, 09:44 2
Посмотри здесь:
[ссылка на посторонний форум]
и вот эта книга может поможет):
http://utilpc.net/software/pod... aya-kniga/
1
10 / 10 / 5
Регистрация: 04.07.2009
Сообщений: 112
03.05.2010, 12:38  [ТС] 3
а может можна как нибуть перевести код с матлаб в с++?
0
44 / 44 / 15
Регистрация: 23.09.2009
Сообщений: 63
07.05.2010, 17:28 4
Наверное, будет проще найти в инете самому, я например нашел вот это:
www.ict.edu.ru/ft/004451/40.pdf
но точно не знаю, то ли это...
0
07.05.2010, 17:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.05.2010, 17:28
Помогаю со студенческими работами здесь

Как подключить свою dll к другой DLL (не своей) с проверкой?
Привет всем. Не знаю куда написать, напишу сюда. Вопрос такой: хочу подключить свою dll к другому...

Как подключить ssleay32.dll & libeay32.dll
Всем привет. У меня QT5 Собран статически, но без openssl. Как мне сейчас можно поступить, что бы...

Как подключить dll, написанную на C, к dll на Delphi
Добрый день! Нужно подключить dll написанную на C к dll на Delphi. Как это можно сделать и можно ли...

Создал dll, но не могу подключить, т.к расширение не dll
Здравствуйте) Изучаю по Троелсону Си-шарп, и там создается библиотека длл и подключается. ...

Компиляцию кода MAtlab в C++Builder и использование преобразованного кода .м в C++Builder
Компиляцию кода MAtlab в C++Builder и использование преобразованного кода .м в C++Builder -Как...

Как подключить dll на C# к проекту (dll) на С++
Подскажите, пожалуйста, как подключить dll на C# к проекту (dll) на С++. В интернете много...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru