如何在delphi中调用C++库文件lib

bonnie135 2004-08-11 06:09:50
VC6.0编译好的库文件.lib,我想在delphi中调用使用,有什么办法?我不想通过.dll的方法,我需要把库文件编译到可执行文件之中。我需要的代码在VC中只有.lib,没有.obj文件。那位大侠能帮帮我?
...全文
508 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bonnie_liu 2004-08-15
  • 打赏
  • 举报
回复
buxing
try again
bonnie135 2004-08-12
  • 打赏
  • 举报
回复
没人能解决这个问题吗?帮帮忙!
bonnie135 2004-08-12
  • 打赏
  • 举报
回复
大家再帮我看看这个问题吧,我实在很急
bonnie135 2004-08-11
  • 打赏
  • 举报
回复
C++中的lib库中有很多函数,我都声明了extern "C" void __stdcall形式,但是调用时,我只想调用其中的一部分函数
obj怎么调用呢?我用{$L encrypt.obj}编译错误
[Error] Unit1.pas(38): Bad object file format: 'F:\liuyan\delphiÀý×Ó\Á·Ï°\н¨Îļþ¼Ð\encrypt.h'
好像时错误的文件格式
帮帮忙!
aiirii 2004-08-11
  • 打赏
  • 举报
回复
我知道可以调用 obj 的
zblaoshu1979 2004-08-11
  • 打赏
  • 举报
回复
不要编译成lib,编译成DLL,然 后在DILPHI中引用用就可调用DLL中的函数了
2.1.1 Visual C++ 6.0 的使用 (1) 启动Visual C++ 6.0,新建一个工程; (2) 将下载的动态链接压缩包里VC文件的动态链接、头文件lib文件复制到工程文件; 第 2 章 运动控制器函数的使用 15 © 1999-2019 固高科技版权所有 (3) 选择“Project”菜单下的“Settings…”菜单项; (4) 切换到“Link”标签页,在“Object\library modules”栏输入lib文件名,例如gts.lib; (5) 在应用程序文件加入函数文件的声明,例如:#include “gts.h”; 至此,用户就可以在Visual C++调用函数的任何函数,开始编写应用程序。 对于步骤(4),还有一种比较简便的方法,那就是在应用程序文件里面添加包含链接文件的声 明,例如:#pragma comment ( lib,"gts.lib" ) 。 上述关于Visual C++ 6.0调用GTS函数的方法同样适用于使用Visual Studio平台开发。 2.1.2 Visual Basic 6.0 的使用 (1) 启动Visual Basic,新建一个工程; (2) 将下载的动态链接压缩包里VB6.0文件的动态链接和函数声明文件复制到工程文 件夹; (3) 选择“工程”菜单下的“添加模块”菜单项; (4) 切换到“现存”标签页,选择函数声明文件,例如gts.bas,将其添加到工程当; 至此,用户就可以在Visual Basic调用函数的任何函数,开始编写应用程序。 2.1.3 Delphi 的使用 (1) 启动Delphi,新建一个工程; (2) 将下载的动态链接压缩包里Delphi文件的动态链接和函数声明文件复制到工程文 件夹; (3) 选择“Project”菜单下的“Add to Project…”菜单项; (4) 将函数声明文件添加到工程当; (5) 在代码编辑窗口,切换到用户的单元文件; (6) 选择“File”菜单下的“Use Unit…”菜单项,添加对函数声明文件的引用; 至此,用户就可以在Delphi调用函数的任何函数,开始编写应用程序。 2.1.4 VB.NET 的使用 (1) 启动Visual Studio,按照“File”->"New",选择建立VB工程; (2) 将下载的动态链接压缩包里VB.NET文件的动态链接和函数声明文件复制到工程 文件,注意:gts.dll应复制到"..\bin"文件的debug或者release文件; (3) 选择“project”菜单下的“Add existing Item”菜单项,选择函数声明文件,如gts.vb,将其添加 到工程当; 至此,用户就可以在Visual Studio使用VB.NET模块调用函数的任何函数,开始编写应用 程序。 第 2 章 运动控制器函数的使用 16 © 1999-2019 固高科技版权所有 2.1.5 Visual C#的使用 (1) 启动Visual Studio,按照“File”->"New",选择建立C#工程; (2) 将下载的动态链接压缩包里C#文件的动态链接和函数声明文件复制到工程文件,注意:gts.dll应复制到"..\bin"文件的debug或者release文件; (3) 选择“project”菜单下的“Add existing Item”菜单项,选择函数声明文件,如gts.cs,将其添加 到工程当; 至此,用户就可以在Visual Studio使用C#模块调用函数的任何函数,开始编写应用程序。
Visual C++6.0使用GDI+的一般方法 1. 载解压GDI+开发包; 2. 正确设置include & lib 目录; 3. stdafx.h 添加: #ifndef ULONG_PTR #define ULONG_PTR unsigned long* #endif #include 4. 程序添加GDI+的包含文件gdiplus.h以及附加的类gdiplus.lib。 通常gdiplus.h包含文件添加在应用程序的stdafx.h文件,而gdiplus.lib可用两种进行添加: 第一种是直接在stdafx.h文件添加下列语句: #pragma comment( lib, "gdiplus.lib" ) 另一种方法是: 在VC.net添加文件在:项目菜单->属性->链接器->输入 举个例子: (1)在应用程序项目的应用类,添加一个成员变量,如下列代码: ULONG_PTR m_gdiplusToken; 其,ULONG_PTR是一个DWORD数据类型,该成员变量用来保存GDI+被初始化后在应用程序的GDI+标识,以便能在应用程序退出后,引用该标识来调用Gdiplus:: GdiplusShutdown来关闭GDI+。 (2)在应用类添加ExitInstance的重载,并添加下列代码用来关闭GDI+: int CGDITestApp::ExitInstance() { Gdiplus::GdiplusShutdown(m_gdiplusToken); return CWinApp::ExitInstance(); } (3)在应用类的InitInstance函数添加GDI+的初始化代码: 注意:下面这些GDI+的初始化代码必须放在m_pMainWnd->UpdateWindow();之前。 CWinApp::InitInstance(); Gdiplus::GdiplusStartupInput gdiplusStartupInput; Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL); (4)在需要绘图的窗口或视图类添加GDI+的绘制代码。 下面分别就单文档和基于对话框应用程序为例,说明使用GDI+的一般过程和方法。 1. 在单文档应用程序使用GDI+ 在上面的过程,我们就是以一个单文档应用程序Ex_GDIPlus作为示例的。下面列出第4步所涉及的代码: void CGDITestView::OnDraw(CDC* pDC) { CGDITestDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here usingnamespace Gdiplus; Graphics graphics(pDC->m_hDC); Pen newPen(Color(255,0,0),3); HatchBrush newBrush(HatchStyleCross,Color(255,0,255,0),Color(255,0,0,255));//创建一个填充画刷,前景色为绿色,背景色为蓝色 graphics.DrawRectangle(&newPen,50,50,100,60);// 在(50,50)处绘制一个长为100,高为60的矩形 graphics.FillRectangle(&newBrush,50,50,100,60); // 在(50,50)处填充一个长为100,高为60的矩形区域 } 编译并运行,结果如图:
目录 第1章 matlab概述. 1.1 matlab的发展历程 1.2 matlab产品组成及语言特点 1.2.1 matlab的主要产品构成 1.2.2 matlab语言的特点 1.3 matlab 7.0的新功能和新产品 1.3.1 matlab 7.0的新功能 1.3.2 matlab升级及新增的模块 1.4 小结 第2章 matlab程序设计及代码优化 2.1 matlab的表达式和变量 2.1.1 表达式 2.1.2 变量 2.2 细胞数组与结构数组 2.2.1 细胞数组 2.2.2 结构数组 2.3 类与对象 2.4 流程控制 2.4.1 for循环结构 2.4.2 while循环结构 .2.4.3 if-else-end分支结构 2.4.4 switch-case结构 2.4.5 try-catch结构 2.5 m文件编程 2.6 m文件编程规范 2.7 m文件评述器 2.8 提高m文件执行效率的技巧 2.8.1 矢量化操作 2.8.2 给数组预定义维 2.8.3 下标或者索引操作 2.8.4 尽量多使用函数文件而少使用非脚本文件 2.8.5 将循环体的内容转换为c-mex 2.8.6 内存优化 2.9 小结 第3章 matlab混合编程简介 3.1 进行混合编程的出发点 3.2 matlab应用程序接口简介 3.3 几种常见的混合编程方法简介 3.3.1 使用matlab自带的matlab compiler 3.3.2 利用matlab引擎 3.3.3 利用activex控件 3.3.4 利用mat文件 3.3.5 c-mex 3.3.6 利用mideva/matcom 3.3.7 利用matrix[lib]实现混合编程 3.3.8 利用matlab add-in 3.3.9 matlab com builder 3.3.10 matlab和excel混合编程 3.4 小结 第4章 c-mex编程 4.1 c-mex简介 4.2 mex文件系统的配置 4.3 mex文件的结构和运行 4.3.1 mex文件结构 4.3.2 mex函数的执行流程 4.3.3 mex文件的结构和使用 4.3.4 mex文件与独立应用程序的区别 4.4 c语言mex函数 4.5 c-mex混合编程 4.6 visual c++mex文件的建立和调试 4.6.1 visual c++mex程序的建立和环境设置 4.6.2 mex程序的调试 4.6.3 mex独立应用程序的发布 4.7 mex编程实例 4.8 小结 第5章 通过matlab引擎实现混合编程 5.1 matlab引擎简介 5.2 matlab引擎函数 5.3 visual c++调用matlab引擎时的环境设置 5.4 matlab引擎类的封装 5.4.1 cmatlabeng类的定义和实现代码 5.4.2 cmatlabeng说明 5.4.3 cmatlabeng说明和使用方法 5.5 应用实例 5.6 小结 第6章 mat文件实现数据共享 6.1 mat文件简介 6.2 操作mat文件 6.2.1 mat文件格式 6.2.2 操作mat文件的matlab api 6.3 visual c++调用mat时的环境设置 6.4 实例 6.5 小结 第7章 利用mideva实现混合编程 7.1 mideva简介 7.2 mideva的安装 7.3 mideva环境下m文件到dll/exe文件的转换 7.4 visual c++环境下使用mideva混合编程 7.4.1 混合编程环境的设置 7.4.2 通过外壳函数调用 7.5 matrix[lib] 7.6 混合编程实例 7.7 小结 第8章 利用matrix[lib]实现混合编程 8.1 matrix[lib]简介 8.2 matrix[lib]与visual c++混合编程 8.2.1 matrix[lib]的安装 8.2.2 visual c++环境配置 8.2.3 初始化 8.3 matrix[lib]函数使用参考 8.3.1 矩阵操作 8.3.2 常量 8.3.3 访问函数 8.3.4 矩阵i/o 8.3.5 图形函数 8.4 混合编程实例 8.5 matlab数学 8.5.1 简介 8.5.2 visual c++工程调用matlab数学函数的环境设置 8.6 小结.. 第9章 通过matlab add-in实现混合编程 9.1 matlab add-in简介 9.2 matlab add-in安装和在visual c++的环境设置 9.3 通过matlab add-in生成独立应用程序 9.4 matlab add-in实例 9.5 小结 第10章 matlab和delphi混合编程 10.

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧