c语言链接库
Ⅰ 用c语言怎么连接数据库呢
1、配置ODBC数据源。
2、使用SQL函数进行连接。
对于1、配置数据源,配置完以后就可以编程操作数据库了。
对于2、使用SQL函数进行连接,参考代码如下:
#include<windows.h>
#include<sql.h>
#include<sqlext.h>
voidmain()
{
HENVhenv;//环境句柄
HDBChdbc;//数据源句柄
HSTMThstmt;//执行语句句柄
unsignedchardatasource[]="数据源名称";//即源中设置的源名称
unsignedcharuser[]="用户名";//数据库的帐户名
unsignedcharpwd[]="密码";//数据库的密码
unsignedcharsearch[]="selectxmfromstuwherexh=0";
SQLRETURNretcode;//记录各SQL函数的返回情况
//分配环境句柄
retcode=SQLAllocEnv(&henv);//等介于SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL
,&henv);
//设置ODBC环境版本号为3.0
retcode=SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0);
//分配连接句柄
retcode=SQLAllocConnect(henv,&hdbc);//等介于SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc);
//设置连接属性,登录超时为*rgbValue秒(可以没有)
//SQLSetConnectAttr(hdbc,SQL_LOGIN_TIMEOUT,(SQLPOINTER)(rgbValue),0);
//直接连接数据源
//如果是windows身份验证,第二、三参数可以是
,也可以是任何字串
//SQL_NTS即"
retcode=SQLConnect(hdbc,datasource,SQL_NTS,user,SQL_NTS,pwd,SQL_NTS);
//分配语句句柄
retcode=SQLAllocStmt(hdbc,&hstmt);//等介于SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hstmt);
//直接执行查询语句
retcode=SQLExecDirect(hstmt,search,SQL_NTS);
//将数据缓冲区绑定数据库中的相应字段(i是查询结果集列号,queryData是绑定缓冲区,BUFF_LENGTH是缓冲区长度)
SQLBindCol(hstmt,i,SQL_C_CHAR,queryData[i-1],BUFF_LENGTH,0);
//遍历结果集到相应缓冲区queryData
SQLFetch(hstmt);
/*
*对遍历结果的相关操作,如显示等
*/
//注意释放顺序,否则会造成未知错误!
SQLFreeHandle(SQL_HANDLE_STMT,hstmt);
SQLDisconnect(hdbc);
SQLFreeHandle(SQL_HANDLE_DBC,hdbc);
SQLFreeHandle(SQL_HANDLE_ENV,henv);
}
Ⅱ c语言 怎么调用DLL链接库
http://www.360doc.com/content/10/0723/13/1898714_40880762.shtml
VC++之icepubdll部分程序例子回
可参考答
Ⅲ 如何用c语言调用c++做成的动态链接库
因为c++的各种复杂机制,生成的动态链接库中的符号名是不符合C的机制的,直接内链接会失败,一容般解决c和c++的链接问题是在c++的代码上进行处理的,只要将你的cpp文件中的函数定义都加上extern "c"前缀,就可以编译成C可链接的库。如果你只有cpp的库文件,没有源码文件的话,没法处理。
//a.cpp
extern"C"intcpp_func(){return0;}
//b.c
#include<stdio.h>
intcpp_func();
intmain(){
printf("%d ",cpp_func());
return0;
}
//***compileandlink***
//g++a.cpp-oa.o
//gccb.c-ob.o
//g++a.ob.o-oa.out&&./a.out
Ⅳ C语言helloworld程序需要连接哪些库啊,
这么说吧. 如果你使用printf来打印hello world 那么#include <stdio.h> 这句话,其实是可以省略的.编译器也会自动帮专你加上. 依旧能编译通属过,并且输出. stdio.h是标准的输入输出库.. printf就是他里面的一个方法.
还有你如果还想知道那些引入的库文件对应的什么东西,这个就没办法说了.太多了. C标准库里面提供了几百个方法. 包括字符处理的库, 输入输出库等等. 多谢谢.多看看api就慢慢熟练了
Ⅳ 用C语言怎么实现与数据库的连接
#include<mysql/mysql.h>
#include<stdio.h>
intmain()
{
MYSQL*conn;
MYSQL_RES*res;
MYSQL_ROWrow;
char*server="localhost";//本地连接
char*user="root";//
char*password="525215980";//mysql密码
char*database="student";//数据库名
char*query="select*fromclass";//需要查询的语句
intt,r;
conn=mysql_init(NULL);
if(!mysql_real_connect(conn,server,user,password,database,0,NULL,0))
{
printf("Errorconnectingtodatabase:%s ",mysql_error(conn));
}else{
printf("Connected... ");
}
t=mysql_query(conn,query);
if(t)
{
printf("Errormakingquery:%s ",mysql_error(conn));
}else{
printf("Querymade... ");
res=mysql_use_result(conn);
if(res)
{
while((row=mysql_fetch_row(res))!=NULL)
{
//printf("num=%d ",mysql_num_fields(res));//列数
for(t=0;t<mysql_num_fields(res);t++)
printf("%8s",row[t]);
printf(" ");
}
}
mysql_free_result(res);
}
mysql_close(conn);
return0;
}
(5)c语言链接库扩展阅读
C语言使用注意事项:
1、指针是c语言的灵魂,一定要灵活的使用它:
(1)、指针的声明,创建,赋值,销毁等
(2)、指针的类型转换,传参,回调等
2、递归调用也会经常用到:
(1)、递归遍历树结构
(2)、递归搜索
Ⅵ c语言如何调用dll动态链接库
这是我以前的回答,是个两数加法的例子,看了就明白了
你的dll不必用h头文件,你用的是显式声明导出函数
vc在显式声明函数时会出现与vb不匹配的问题,他会把函数名改了,你必须用隐式声明,就是def文件声明才可以。
你的cpp里直接写
int __stdcall add(int a, int b)
{
return (a+b);
}
然后再在工程里添加一个文本文件,注意,文件名是 makedll(如果不对就是工程名).def
里面写
LIBRARY makedll
EXPORTS
add @1
然后保存
编译、连接
得到的dll就是vb可以调用的了
vb里呢,不用怎么改
如下
Public Declare Function add Lib "makedll.dll" (ByVal a As Integer,ByVal b As Integer) As Integer
Private Sub Command1_Click()
Dim c As Integer
c = add(1, 2)
MsgBox c
End Sub
这有就应该没问题了
Ⅶ C语言怎么使用动态链接库,如何创建(高手进)
去网上下一个MFC42.DLL或者从备份的系统中中提取一个,然后复制到C:\WINDOWS\SYSTEM32\中如果是2K那就放在C:\WINNT\SYSTEM32中如果不行:可以运行regedit,打开注册表编辑器定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs在右边创建一个字符串值,命名称为MFC42,数值数据为MFC42.DLL关闭注册表编辑器,重新启动计算机即可
Ⅷ C语言可以编写动态链接库吗
完全可以
Ⅸ c语言怎么编写动态链接库
编写动态链接库的过程
其实和编写普通C程序差不多少
只不过
把一个整体的C程序,摘回出来一部答分, 放在独立的一个或者几个C文件中
再把这些C文件打包成dll或者so文件而已。
所以写法上没有特别的
需要注意的是编译。
如果是windows,最好用IDE,创建的时候选动态链接库
如果是gcc, 那么编译的时候 增加编译选项 -fPIC -shared即可。
Ⅹ 哪些C语言书有制作动态链接库内容
动态链接库的就涉及到是哪个平台,如果是windows平台,建议用vs的工具。有入门级的说明,自己去摸索吧