原文:
http://ideage.iteye.com/blog/26718
关键字: D 导入库 HTOD
要使用D,就要和其他应用配合。D和C是二进制兼容的。可以转换C的头文件为D的文件,然后访问C的库,或者兼容C的库。
步骤:
1.转换C的头文件。具体办法http://www.digitalmars.com/d/htomodule.html,也可以使用HTOD工具 http://www.digitalmars.com/d/htod.html,下载在http://ftp.digitalmars.com/d/htod.zip
2.转换动态库,生成D可以链接的lib文件,D链接的格式是Intel32为OMF格式,和微软使用的lib文件格式COFF不兼容,转换格式的程序我没有找到,虽然介绍了。可使用的是implib,用法http://www.digitalmars.com/ctg/implib.html,implib /s kernel32.lib kernel32.dll 下载地址http://ftp.digitalmars.com/bup.zip,包含了几个工具。
创建导入函数定义def文件的工具http://www.dprogramming.com/linkdef.php
3.例子,转换SQLServer的头文件,SQLDB.H,SQLFRONT.H。
//代码太长,略,请参见原文
调用例子:
module test;
import sqldb;
import std.c.stdio;
import std.string;
int main(){
PDBPROCESS dbproc; // The connection with SQL Server.
PLOGINREC login; // The login information.
DBCHAR name[100];
DBCHAR city[100];
// Initialize DB-Library.
dbinit();
// Get a LOGINREC.
login = dblogin ();
dbsetlname (login, "sa",DBSETUSER);
dbsetlname (login, "",DBSETPWD);
dbsetlname (login, "example",DBSETAPP);
// Get a DBPROCESS structure for communication with SQL Server.
dbproc = dbopen (login, "BM");
// Retrieve some columns from the authors table in the pubs database.
// First, put the command into the command buffer.
dbcmd (dbproc, "SELECT cpm,ccd FROM pt..tzl_sp");
dbcmd (dbproc, " WHERE CID < 130 ");
// Send the command to SQL Server and start execution.
dbsqlexec (dbproc);
// Process the results.
if (dbresults (dbproc) == SUCCEED)
{
// Bind column to program variables.
dbbind (dbproc, 1, NTBSTRINGBIND, 0, name);
dbbind (dbproc, 2, NTBSTRINGBIND, 0, city);
// Retrieve and print the result rows.
while (dbnextrow(dbproc) != NO_MORE_ROWS)
{
printf ("%s from %s\n", toStringz(name), toStringz(city));
}
}
// Close the connection to SQL Server.
dbexit ();
return 0;
}
4.参考
http://qiezi.iteye.com/blog/26632
。。。。。。。。。。。。。。。
分享到:
相关推荐
第1章 初识Web应用程序 第2章 数据库应用基础 ...第4章 用户登录模块设计 第5章 网站访问计数器设计 第6章 图书信息查询模块设计 第7章 图书信息浏览模块设计 ...附录D Web应用程序设计综合实训
在第3章中,我们将讨论一个M F C应用程序是怎样通过消息与外界及应用程序进行通信的。 还将讨论四种消息类型,并跟踪一个消息通过接收消息的类。最后将探讨该路径上的重定向 消息。 绘图 在第4章中,我们将讨论在...
D语言是一种通用的系统和应用编程语言,它保持了生成高效代码以及直接访问操作系统API和硬件的能力。《D程序设计语言》是一本介绍D语言的权威书籍,全面、系统、专业地讲解了D语言相关的内容。书中涵盖了D语言的...
D 是一种通用的系统和应用编程语言。它是比C++更高级的语言,同时还保持了生成高效代码以及直接访问操作系统API和硬件的能力。D 很适合于编写从中等规模到那些由团队合作完成、数百万行代码规模的各种程序。D 易于...
Vs2010测试时可以正常访问网络文件夹,\\192.168.2.249\d$\IndexRoot 但配置到IIS上就无法访问了,原因是asp.net development server具有最高的权限,可以通过本机存储的unc用户名密码去进行身份验证。于是,解决这...
4.D版检测: 未授权的访问将写入D版程序ID和其域名,可以手动删除,新建授权时存在D版会删除D版信息; 5.一键获取授权代码: 不同应用的授权代码不同,在程序列表和授权列表可以一键获取授权代码,傻瓜式接入; 6....
实用的邮件发送程序,可轻松集成至C/S架构及B/S架构的应用软件中,实现系统自动地向客户提供邮件发送服务。 其调用说明如下: 1、设置邮件服务器:void SetMailServer(char *iSrvHost,int iPort,char *iUserNo, char...
dbus-sensors 是一组传感器应用程序,提供 xyz.openbmc_project.Sensor 接口集合。它们从 hwmon、d-bus 或直接驱动程序访问中读取传感器值以提供读数。还支持一些高级非传感器功能,例如风扇存在、pwm 控制和自动 ...
它可以扫描具有和不具有身份验证的所有Web应用程序/移动应用程序/网络/内容管理系统,并具有管理会话的独特方式,以更好地识别漏洞。 特点 提供统一的界面来协调调查结果 可以对所有代码管理库和URL进行扫描...
单选题: 1、Windows中,要设置将任务栏上的...均可通过剪切、复制和粘贴与其他Windows应用程序交换信息 D.两者均不能与其他Windows应用程序交换信息 答案:C 5、Windows中有很多功能强大的应用程序,其中"磁盘碎片整
本书提供了几种在应用程序中使用渐进增强功能,可访问性设计和兼容Web表单的选项和最佳实践。 这些功能将帮助您的在线产品实现蒂姆·伯纳斯·李(Tim Berners-Lee)关于建立全球通信网络的承诺,该网络使每个有联系...
①它可以利用已有的类来创建自己的类,只需要指出自己的类和已有的其他类有什么不同即可,而且还可以动态访问其他有 关类中的信息。 ②通过继承,可以利用Java类库所提供的丰富而有用的类,这些类都已经被很好地实现...
概览 本地开发 自定义 本地化 概览 此应用程序使用 React Native 构建,旨在与 Android 和 iOS 设备上的模式良好配合。 它与 COVID 警报诊断服务器一起工作,为暴露通知的客户端应用程序如何工作提供参考。 本地开发...
1.4 程序与数据内存访问 1.5 I/O端口编程 1.6 外设相关寄存器及应用 1.7 中断服务程序 1.8 GCC在AVR单片机应用系统开发中的优势 第二章:PROTEUS操作基础 2.1 PROTEUS操作界面简介 2.2 仿真电路原理图设计 ...
本书通过85个实例全面讲述了应用MFC进行Visual C++编程的思想。每个实例均以编写一个应用程序要走的步骤编写。...附录C 访问其他应用程序类 328 附录D 开发中注意事项 330 附录E MFC快速参考指南 339
1.4 程序与数据内存访问 1.5 I/O端口编程 1.6 外设相关寄存器及应用 1.7 中断服务程序 1.8 GCC在AVR单片机应用系统开发中的优势 第二章:PROTEUS操作基础 2.1 PROTEUS操作界面简介 2.2 仿真电路原理图设计 ...
在应用程序窗口标题栏的右端一般有三个按钮,分别是"最小化"、"最大化"(或"还原" )、"关闭" d. 应用程序在窗口标题栏的左边都有一个图标 反馈 正确答案是:在应用程序窗口标题栏的右端一般有三个按钮,分别是...
windows 2003 补丁 KB982666 可能会导致 iis 应用程序池 无法启动 进程退出代码是 0xffffffff 卸载KB982666 既可解决问题 网上传统解法二: IIS 500错误报“进程退出代码是 ‘0xffffffff’”的处理方案 (此故障只...
如果你已在DNS服务器中将所有你需要的域名都已经映射到了此惟一的IP地址,则用设不同“主机头名”的方法,可以让你直接用域名来完成对不同Web站点的访问。 比如你本机只有一个IP地址为192.168.0.1,你已经建立(或...
它使用 github API(最终可能是 bitbucket 或其他地方)提供对 github 的访问,以便 Nirvana 应用程序可以引用它们。 应该参考 {"github", "nirvana/sofo", "13ef6092b75d95995c9ac377a86f0e4a88e6ebe0") 或标签而...