vc6-如何用VC6编一个联接SQL2000数据库的句柄,并编译成.fll的格式,给VFP9.0调用!

问题描述

如何用VC6编一个联接SQL2000数据库的句柄,并编译成.fll的格式,给VFP9.0调用!

如何用VC6编一个联接SQL2000数据库的句柄,并编译成.fll的格式,给VFP9.0调用,只要求一个简单的实例,大侠高手们,高台贵手一下!

解决方案

创建用于VFP的动态库(FLL格式)

一、使用VC98创建FLL文件的步骤:
1. 打开VC98,并在VC中新建空项目(Win32 Dynamic-Link Library动态库)
2. 添加或编写源代码文件,如格式为*.C,不能用*.cpp表示的文件。参考例子Hello.c的内容如下:
#include
void hello(ParamBlk *parm) // the function definition
{
_PutStr("nHello, World!n"); //print the message
}
Example(ParamBlk *parm)
{
// 通过使用 #define 快捷方式使得 paramBlk 结构易于管理
#define p0 (parm->p[0].val)
#define p1 (parm->p[1].val)
// 确保有足够的内存
if (!_SetHandSize(p0.ev_handle, p0.ev_length + p1.ev_length))
_Error(182); // "内存不足"
// 锁定句柄
_HLock(p0.ev_handle);
_HLock(p1.ev_handle);
// 将句柄转换为指针并确保串是由 null 作终止符
((char *)_HandToPtr(p0.ev_handle))[p0.ev_length] = '';
((char *)_HandToPtr(p1.ev_handle))[p1.ev_length] = '';
// 用 API 函数 _StrCpy 连接串
_StrCpy((char *)_HandToPtr(p0.ev_handle) + p0.ev_length,
_HandToPtr(p1.ev_handle));
// 将已连接的串返回给 Visual FoxPro
_RetChar(_HandToPtr(p0.ev_handle));
// 解除句柄锁定
_HUnLock(p0.ev_handle);
_HUnLock(p1.ev_handle);
}

FoxInfo myFoxInfo[] = {
{"HELLO",(FPFI) hello, 0, ""},
{"STRCAT", Example, 2, "CC"},
};
FoxTable _FoxTable = {
(FoxTable *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};
其中红色部分为函数定义,可定义多个函数;而紫色部分为导出的函数说明(函数名,内部函数名,参数个数,参数类型),若有多个函数,则相应地要写几个。
3. 项目设置(很关键,设置不对会导致编译错误)
点击项目(Project)中<设置(Settings)>,
(1)在C++选项卡中,删除编译器开关参数中的 /GZ。
(2)在Link选项卡中,添加WINAPIMS.LIB和msvcrt.lib(建议msvcrt.lib放在最后)即可成功

二、使用VFP命令
在VC源代码文件中的格式如下:
_Execute(“命令”)
注意命令中变量的值与VC中的同名变量无关.
三、调试FLL:
可以在.C 源代码中使用_BreakPoint()命令启动调试器,然后,然后可逐语句进行调试。
1. .C 源代码中包含 _BreakPoint() 函数。
2. 启动调试器。
3. FoxPro 从调试器中启动。
4. 加载库并调用函数。
5. 逐句通过 C 源代码并随后返回到 FoxPro。
6. 退出 FoxPro。
7. 退出调试器。
四、在VFP中使用FLL动态库
启动 Visual FoxPro 程序后并发出 ' SET LIBRARY to < DLL 文件 >
使用函数与使用系统函数一样,没有两样。
本文难免有不妥之处,请来邮告知, 以便共同进步。来信请邮:498890448@qq.com.
2010-12-12

创建DLL函数(32位动态库DLL格式):
创建DLL格式的动态库,网络上介绍的相关资料很多,笔者不想多谈。注意,在利用VC开发并编译时,应使用__cdecl*,否则无法使用.
导出的函数应使用以下格式:
extern "C" __declspec(dllexport) int sy(int x, int y);
或extern "C" int __declspec(dllexport) sy(int x, int y);
导出符号 函数类型 函数名(参数类型名称)

解决方案二:

什么叫fll,应该是dll吧。你新建一个dll项目,编写函数,把调用数据库的代码放进来,再把函数写在导出文件中,编译即可。
访问数据库可以用ado,也可以用dao。

解决方案三:

至于vc++访问sql server,参考
http://wenku.baidu.com/link?url=_bDOarLhTZcnACuVvz2L2w1GYbYWQSHh0LeJAyT8IBaYTorF05MEVfYQu675Ek0LjoNpZa82CZVP0f2aZHGbGDPEXI2_7SgVg3MkziEG9nS
http://wenku.baidu.com/link?url=csK8xRWGpWpSfZPISoKzBf7ZoFg_YgdVeK47gxlmJxpJuIXTlhwDAfEQE6MCekox5f-p3rIQ1hLBYht2mp9tG1OcJKF_tFtjLc0ILdvI33G
http://www.yesky.com/277/1893277.shtml

解决方案四:

我给你看一编文章:
创建用于VFP的动态库(FLL格式)

一、使用VC98创建FLL文件的步骤:
1. 打开VC98,并在VC中新建空项目(Win32 Dynamic-Link Library动态库)
2. 添加或编写源代码文件,如格式为*.C,不能用*.cpp表示的文件。参考例子Hello.c的内容如下:
#include
void hello(ParamBlk *parm) // the function definition
{
_PutStr("nHello, World!n"); //print the message
}
Example(ParamBlk *parm)
{
// 通过使用 #define 快捷方式使得 paramBlk 结构易于管理
#define p0 (parm->p[0].val)
#define p1 (parm->p[1].val)
// 确保有足够的内存
if (!_SetHandSize(p0.ev_handle, p0.ev_length + p1.ev_length))
_Error(182); // "内存不足"
// 锁定句柄
_HLock(p0.ev_handle);
_HLock(p1.ev_handle);
// 将句柄转换为指针并确保串是由 null 作终止符
((char *)_HandToPtr(p0.ev_handle))[p0.ev_length] = '';
((char *)_HandToPtr(p1.ev_handle))[p1.ev_length] = '';
// 用 API 函数 _StrCpy 连接串
_StrCpy((char *)_HandToPtr(p0.ev_handle) + p0.ev_length,
_HandToPtr(p1.ev_handle));
// 将已连接的串返回给 Visual FoxPro
_RetChar(_HandToPtr(p0.ev_handle));
// 解除句柄锁定
_HUnLock(p0.ev_handle);
_HUnLock(p1.ev_handle);
}

FoxInfo myFoxInfo[] = {
{"HELLO",(FPFI) hello, 0, ""},
{"STRCAT", Example, 2, "CC"},
};
FoxTable _FoxTable = {
(FoxTable *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};
其中红色部分为函数定义,可定义多个函数;而紫色部分为导出的函数说明(函数名,内部函数名,参数个数,参数类型),若有多个函数,则相应地要写几个。
3. 项目设置(很关键,设置不对会导致编译错误)
点击项目(Project)中<设置(Settings)>,
(1)在C++选项卡中,删除编译器开关参数中的 /GZ。
(2)在Link选项卡中,添加WINAPIMS.LIB和msvcrt.lib(建议msvcrt.lib放在最后)即可成功

二、使用VFP命令
在VC源代码文件中的格式如下:
_Execute(“命令”)
注意命令中变量的值与VC中的同名变量无关.
三、调试FLL:
可以在.C 源代码中使用_BreakPoint()命令启动调试器,然后,然后可逐语句进行调试。
1. .C 源代码中包含 _BreakPoint() 函数。
2. 启动调试器。
3. FoxPro 从调试器中启动。
4. 加载库并调用函数。
5. 逐句通过 C 源代码并随后返回到 FoxPro。
6. 退出 FoxPro。
7. 退出调试器。
四、在VFP中使用FLL动态库
启动 Visual FoxPro 程序后并发出 ' SET LIBRARY to < DLL 文件 >
使用函数与使用系统函数一样,没有两样。
本文难免有不妥之处,请来邮告知, 以便共同进步。来信请邮:498890448@qq.com.
2010-12-12

创建DLL函数(32位动态库DLL格式):
创建DLL格式的动态库,网络上介绍的相关资料很多,笔者不想多谈。注意,在利用VC开发并编译时,应使用__cdecl*,否则无法使用.
导出的函数应使用以下格式:
extern "C" __declspec(dllexport) int sy(int x, int y);
或extern "C" int __declspec(dllexport) sy(int x, int y);
导出符号 函数类型 函数名(参数类型名称)

解决方案五:

hdfzcxcgfwgdff

时间: 2016-02-25

vc6-如何用VC6编一个联接SQL2000数据库的句柄,并编译成.fll的格式,给VFP9.0调用!的相关文章

如何用vb编一个能随机出选择题并判分的程序?

问题描述 如何用vb编一个能随机出选择题并判分的程序? 我有套题存放在word中,我想用这套提中的一些随机出一张卷并能作答然后出分. 解决方案 word并不是存储题目的好方式.如果你非要这么做,你首先必须明确,你的题目以什么方式存放.比如说,每个题目由什么文字开头,或者题目和题目之间的分隔符是什么. 否则你的word文档把题目混合在一起,根本分不出题目和题目,题干.选择项.答案.后面的一系列问题也就没法解决了. 建议你把这套题目先放在数据库的表中,每行记录包括题号.题干.N个选项.答案等信息.

如何用python把一个txt文件中所有逗号——,替换成空格?

问题描述 如何用python把一个txt文件中所有逗号--,替换成空格? 如何用python把一个txt文件中所有逗号--,替换成空格? 就是a,b之间就是去掉逗号,但保持点距离 解决方案 读取open文件.然后read读取内容.用replace替换内容.write写回文件

vc6.0-求大神教我怎样用MFC编一个任务管理器,急急急!!

问题描述 求大神教我怎样用MFC编一个任务管理器,急急急!! 怎么用VC6.0的MFC来实现一个简易的资源管理器 我新建了这样的一个project: 然而并不能看懂注释的意思,不知道要在哪里写些什么!!(就因为这样,网上的源码也看不懂......) 所以,有哪位大神可以依据图片告诉我:在哪个文件里写什么内容(比如:在xxx文件的xxxx部分写xxx),让我有个具体的实现过程的了解!! 有图片示范的就更好了,回答好的加C啊!! 感激不尽!!TT TT TT 解决方案 参考:http://downl

如何编实心三角形-如何用C语言编一个实心三角形啊

问题描述 如何用C语言编一个实心三角形啊 等边的三角形 不是用*号组成那种 实心的.就跟绘图软件画的那种一样.非常感谢

vc60-如何用vc6.0画自定义按钮

问题描述 如何用vc6.0画自定义按钮 想要自制按钮,就是按下之后会亮的那种,用vc怎么画,或者说哪里有资源吗 解决方案 参考:http://blog.csdn.net/lightboat09/article/details/6069710http://download.csdn.net/detail/nexuiz2/3445593 解决方案二: setwindowlong子类化按钮,在wndproc里拦截WM_PAINT消息,使用GDI/GDI+或其他的绘图,返回0阻止系统重画 解决方案三:

vc-告急 用VC编一个课表编排系统

问题描述 告急 用VC编一个课表编排系统 位网路大哥,谁能用C++编学校课表管理系统? 小弟菜鸟一个,急需用它做课程设计,还有五天时间就得交了 请大侠们帮忙!!! 若编出来,麻烦您将其发到我的邮箱dorichul@163.com 如能获救,感激不禁!!!!! 解决方案 代码已发,解压密码请先采纳我的答案,然后我给你. 解决方案二: 参考:http://www.docin.com/p-699975728.htmlhttp://download.csdn.net/detail/weng21509/5

如何用C++编写一个服务器和用户之间的共享内存管理程序

问题描述 如何用C++编写一个服务器和用户之间的共享内存管理程序 主要的功能就是建立一个服务器,新建两个容器,一个用来存放用户的ID(对应内存),插入操作之后遍历,看是否插入成功:一个用于服务器存放这些ID:在用户插入成功后服务器将他拷贝到这里,然后遍历,看是否插入成功:然后出现查内存进行标记. 要用到stl,共享内存,多线程这块. 请各位大大给点意见啊,谢谢.:) 完美解决的小弟会意思意思的. 解决方案 这些信息都可以放到服务器,用STL的map等来维护 解决方案二: 首先你要定义一个服务器与

如何用word写一个中文邮件?

  如何用word写一个中文邮件? 1.打开word. 2.点击邮件界面. 3.点击收件人,如果你没有注册过,那么请略过这一步. 4.点击左上角的中文信封. 5.然后,如果有提示的话,你可以观看信封制作向导,如果没有的话,也请略过这一面. 6.展示过后,会自动创建一个新的word文档,名为:"未命名-2". 7.填写信封界面. 8.返回初建立文档,填写文章内容,然后点击发送. 注意事项 因word本身问题,可能会有发送不成功的情况,或操作步骤不同的情况.

c语言字符串-编一个跟字符串有关的C语言程序

问题描述 编一个跟字符串有关的C语言程序 首先要定义2个数组 然后输入2个字符串 再分别求出字符串的长度 接着比较2个字符串的大小 最后链接在一起 下面是我自己弄的,请看看 #include #include int main() { char q[50],p[10]; gets(q); gets(p); printf("q的字符串长度为%dn",strlen(q)); printf("p的字符串长度为%dn",strlen(p)); printf("%d