`
hqs7636
  • 浏览: 220988 次
  • 性别: 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



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

相关推荐

    怎样在wincc中用按钮打开某个文件夹及其他应用程序

    在 WinCC 中,我们可以使用按钮来打开文件夹、应用程序等,以便更方便地访问和操作这些资源。下面我们将详细介绍如何在 WinCC 中使用按钮打开文件夹及其他应用程序。 按钮的定义和命名 首先,在图形编辑器中定义一...

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

    ### Asp.net应用程序使用UNC路径访问网络文件夹 #### 背景介绍 在开发Asp.net应用程序的过程中,经常会遇到需要访问网络文件夹的情况。在本地开发环境下使用Visual Studio 2010(以下简称Vs2010)进行测试时,能够...

    Web应用程序设计案例教程

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

    android管理应用程序相关代码及资源路径

    在Android中,用户可以通过`Settings`应用访问"管理应用程序"。相关设置的标题和描述可能包含以下字符串资源: - `manageapplications_settings_title`:这可能是管理应用程序设置的标题,比如"应用管理"。 - `...

    windows 服务启动应用程序

    4. **设置服务权限**:如果应用程序需要特定的权限,比如访问网络或者特定的系统资源,你可能需要调整服务账户的权限。默认情况下,服务通常以Local System账户运行,但也可以更改为其他账户。 5. **启动和管理服务...

    asp.net中web应用程序部署

    ASP.NET 2.0 中 WEB 应用程序的部署是指在我们建立完一个 WEB 应用程序后,将其部署到生产环境中,使其可以被用户访问的过程。部署 WEB 应用程序是非常重要的步骤,因为它直接影响着用户体验和应用程序的可靠性。 ...

    maximo 应用程序设计器 文档

    - 介绍如何使用应用程序设计器来实现与其他系统的集成,比如ERP或CRM系统。 - **主题2:高级用户界面定制** - 探讨如何利用CSS、JavaScript等前端技术进一步定制Maximo的用户界面,以提供更加友好的用户体验。 - *...

    获取上网账号和密码的应用程序

    “获取上网帐号密码并自动保存到D盘.EXE”是压缩包内的文件名,表明这是可执行文件(EXE),是Windows操作系统下的应用程序。这个文件很可能就是描述中所说的工具,用户下载并运行后,就能使用其功能。自动保存功能...

    C语言基础 简单C语言应用程序

    在“C语言基础 简单C语言应用程序”这个主题中,我们将深入探讨C语言的基础知识,了解如何编写简单的C语言应用程序。 首先,C语言的基础包括数据类型。C语言支持基本的数据类型如整型(int)、浮点型(float、...

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

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

    单片机原理与应用及C51程序设计习题答案

    单片机原理与应用是电子工程领域中一个重要的学习板块,C51程序设计则是针对8051系列单片机进行编程的一种语言。在这个专题中,我们将深入探讨这两个核心概念,以及如何通过课后习题来提升理解和实践能力。 首先,...

    《C51单片机应用与C语言程序设计》配套程序

    《C51单片机应用与C语言程序设计》是一本深入浅出的教程,旨在帮助读者掌握C51单片机的使用以及基于C语言的编程技术。配套程序是学习过程中不可或缺的一部分,它们提供了实践操作的机会,使理论知识得以实际验证。...

    visual c++ vc限制磁盘驱动器访问,如禁止访问D盘.zip

    在使用Visual C++ (VC++) 开发Windows应用程序时,有时我们可能需要对程序的磁盘访问权限进行控制,比如禁止程序访问特定的磁盘驱动器,例如D盘。这种需求通常出于安全考虑,防止程序误操作或者恶意行为,或者是为了...

    单片机高级c51应用程序设计

    单片机高级C51应用程序设计是一门涵盖了嵌入式系统开发中的重要技术领域,主要针对Atmel公司的8位AVR单片机进行讲解。C51是专门为8051系列单片机定制的一种高级编程语言,它扩展了标准C语言,使其更适合于微控制器的...

    单片机原理与应用及C51程序设计课件电子教案.rar

    6. **实际应用案例**:教案可能包含一些实际项目案例,如温控系统、防盗报警器、智能家居等,让学生了解单片机在现实生活中的广泛应用。 7. **优秀毕业设计与论文**:标签中的“优秀毕业设计”和“优秀毕业论文”...

    单片机高级语言C51应用程序设计

    ### 单片机高级语言C51应用程序设计 #### 一、引言 随着电子技术的发展,单片机因其体积小、成本低、可靠性高、易于控制等优势,在工业自动化、家用电器、智能仪器仪表等领域得到了广泛应用。在单片机编程领域,...

    西门子 Sinumerik 802S_C_D PLC子程序库应用指南.zip

    西门子Sinumerik 802S/C/D PLC子程序库是专为这款系列的数控系统设计的应用工具,用于实现复杂控制逻辑和自动化任务。这个应用指南详细介绍了如何有效地利用PLC子程序来提高系统的功能性和效率。下面将深入探讨相关...

    Lazarus开发Android应用程序指南

    ### Lazarus开发Android应用程序指南 #### 一、引言 随着移动互联网的快速发展,Android操作系统因其开放性和灵活性而成为智能手机和平板电脑市场的主导者之一。为了满足开发者的需求,多种编程工具和技术应运而生...

    单片机高级C51应用程序设计(PDG).rar

    《单片机高级C51应用程序设计》是一本专注于单片机编程的书籍,主要针对C51语言在单片机应用中的高级技巧和实践。C51是为8051系列单片机设计的一种高级语言,它以其简洁、易读的语法特性,成为单片机开发中广泛使用...

Global site tag (gtag.js) - Google Analytics