`
hqs7636
  • 浏览: 215561 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

让D访问其他应用程序

阅读更多
原文: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



。。。。。。。。。。。。。。。
分享到:
评论

相关推荐

    Web应用程序设计案例教程

    第1章 初识Web应用程序 第2章 数据库应用基础 ...第4章 用户登录模块设计 第5章 网站访问计数器设计 第6章 图书信息查询模块设计 第7章 图书信息浏览模块设计 ...附录D Web应用程序设计综合实训

    应用程序的M F C类、支持窗口

    在第3章中,我们将讨论一个M F C应用程序是怎样通过消息与外界及应用程序进行通信的。 还将讨论四种消息类型,并跟踪一个消息通过接收消息的类。最后将探讨该路径上的重定向 消息。 绘图 在第4章中,我们将讨论在...

    D程序设计语言.(美)Andrei.Alexandrescu著

    D语言是一种通用的系统和应用编程语言,它保持了生成高效代码以及直接访问操作系统API和硬件的能力。《D程序设计语言》是一本介绍D语言的权威书籍,全面、系统、专业地讲解了D语言相关的内容。书中涵盖了D语言的...

    D语言程序设计 中文文档

    D 是一种通用的系统和应用编程语言。它是比C++更高级的语言,同时还保持了生成高效代码以及直接访问操作系统API和硬件的能力。D 很适合于编写从中等规模到那些由团队合作完成、数百万行代码规模的各种程序。D 易于...

    让Asp.net应用程序使用UNC路径访问网络文件夹

    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...

    D-Bus 可配置传感器扫描应用_C++_代码_相关文件_下载

    dbus-sensors 是一组传感器应用程序,提供 xyz.openbmc_project.Sensor 接口集合。它们从 hwmon、d-bus 或直接驱动程序访问中读取传感器值以提供读数。还支持一些高级非传感器功能,例如风扇存在、pwm 控制和自动 ...

    印度Ola公司开源的应用程序漏洞检测工具Jackhammer.zip

    它可以扫描具有和不具有身份验证的所有Web应用程序/移动应用程序/网络/内容管理系统,并具有管理会话的独特方式,以更好地识别漏洞。 特点 提供统一的界面来协调调查结果 可以对所有代码管理库和URL进行扫描...

    2操作系统应用.doc

    单选题: 1、Windows中,要设置将任务栏上的...均可通过剪切、复制和粘贴与其他Windows应用程序交换信息 D.两者均不能与其他Windows应用程序交换信息 答案:C 5、Windows中有很多功能强大的应用程序,其中"磁盘碎片整

    为所有人构建Web应用程序(Adam D. Scott)Building Web Apps for Everyone (Adam D. Scott)

    本书提供了几种在应用程序中使用渐进增强功能,可访问性设计和兼容Web表单的选项和最佳实践。 这些功能将帮助您的在线产品实现蒂姆·伯纳斯·李(Tim Berners-Lee)关于建立全球通信网络的承诺,该网络使每个有联系...

    java程序设计阅读程序写结果题22道

    ①它可以利用已有的类来创建自己的类,只需要指出自己的类和已有的其他类有什么不同即可,而且还可以动态访问其他有 关类中的信息。 ②通过继承,可以利用Java类库所提供的丰富而有用的类,这些类都已经被很好地实现...

    曝光通知客户端应用程序/应用程序客户端 de notice d'exposition

    概览 本地开发 自定义 本地化 概览 此应用程序使用 React Native 构建,旨在与 Android 和 iOS 设备上的模式良好配合。 它与 COVID 警报诊断服务器一起工作,为暴露通知的客户端应用程序如何工作提供参考。 本地开发...

    单片机C语言程序设计实训100例--基于AVR+PROTEUS仿真(源程序暂缺)

    1.4 程序与数据内存访问 1.5 I/O端口编程 1.6 外设相关寄存器及应用 1.7 中断服务程序 1.8 GCC在AVR单片机应用系统开发中的优势 第二章:PROTEUS操作基础 2.1 PROTEUS操作界面简介 2.2 仿真电路原理图设计 ...

    VISUAL C++MFC编程实例

    本书通过85个实例全面讲述了应用MFC进行Visual C++编程的思想。每个实例均以编写一个应用程序要走的步骤编写。...附录C 访问其他应用程序类 328 附录D 开发中注意事项 330 附录E MFC快速参考指南 339

    单片机C语言程序设计实训100例--基于AVR+PROTEUS仿真(源程序)

    1.4 程序与数据内存访问 1.5 I/O端口编程 1.6 外设相关寄存器及应用 1.7 中断服务程序 1.8 GCC在AVR单片机应用系统开发中的优势 第二章:PROTEUS操作基础 2.1 PROTEUS操作界面简介 2.2 仿真电路原理图设计 ...

    交大网络教育-计算机应用基础-第二次作业-windows操作系统.doc

    在应用程序窗口标题栏的右端一般有三个按钮,分别是"最小化"、"最大化"(或"还原" )、"关闭" d. 应用程序在窗口标题栏的左边都有一个图标 反馈 正确答案是:在应用程序窗口标题栏的右端一般有三个按钮,分别是...

    win2003 补丁 iis 应用程序池 无法启动 进程退出代码是 0xffffffff

    windows 2003 补丁 KB982666 可能会导致 iis 应用程序池 无法启动 进程退出代码是 0xffffffff 卸载KB982666 既可解决问题 网上传统解法二: IIS 500错误报“进程退出代码是 ‘0xffffffff’”的处理方案 (此故障只...

    IIS6.0 IIS,互联网信息服务

    如果你已在DNS服务器中将所有你需要的域名都已经映射到了此惟一的IP地址,则用设不同“主机头名”的方法,可以让你直接用域名来完成对不同Web站点的访问。 比如你本机只有一个IP地址为192.168.0.1,你已经建立(或...

    universe:允许 Nirvana 应用程序动态访问库的世界

    它使用 github API(最终可能是 bitbucket 或其他地方)提供对 github 的访问,以便 Nirvana 应用程序可以引用它们。 应该参考 {"github", "nirvana/sofo", "13ef6092b75d95995c9ac377a86f0e4a88e6ebe0") 或标签而...

Global site tag (gtag.js) - Google Analytics