matlab产生的dll文件可否被C++builder调用
如题,我模仿着例子写了个简单的小程序,编译通过了,但是总是不能将dll中的函数载入。程序为
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "test.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
HINSTANCEhComm;
extern "C" _declspec (dllimport) void _fastcallfprintf(int n,char *m );
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
hComm=LoadLibrary("hello.dll");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
FARPROC lpFarProc;
lpFarProc=GetProcAddress(hComm," fprintf");
if(lpFarProc==NULL)
ShowMessage("hello Error");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
FreeLibrary(hComm);
}
//-------------------------------------------------------
matlab小程序是从示例中找到的,两句话
function hello
fprintf(1,'Hello, World\n' );
运行后的结果是
hello Error的提示框
不知道是什么原因,是不是matlab的dll文件不适合被C++builder调用啊? 请问一下楼主:在matlab 7.0下,如何将M函数转变为*.dll文件啊? 如果是生成C语言的动态链接库,使用:
mcc -W lib:filename-Tlink: libfilename0.m
如果是生成C++的动态链接库,使用:
mcc -W cpplib: filename-T link:lib filename0.m
filename是带生成链接库的名字,filename0是原m文件的名字
此命令在matlab下使用 请问一下:这样生成的.dll文件可以在m文件中调用吗? 我也不清楚哦,我生成的.dll文件是想让c++builder调用,结果没弄好。不知道有没有用.dll文件生成.lib文件的,然后由.lib文件导入。你可以试一下,这纯属自己臆想的,嘿嘿。 哦!好的!谢谢啊!!
页:
[1]