让D访问其他应用程序

原文:[url]http://ideage.iteye.com/blog/26718[/url]

关键字: 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.参考[url]http://qiezi.iteye.com/blog/26632[/url]


。。。。。。。。。。。。。。。
你遇到的错误代码0xc000000d通常表示应用程序无法正常启动。这个错误通常与缺少或损坏的系统文件、驱动程序问题或操作系统配置错误有关。为了解决这个问题,你可以尝试以下几种方法: 1. 重新启动计算机:有时候简单地重新启动计算机可以解决临时的问题。 2. 运行系统文件检查器(SFC):SFC是Windows操作系统自带的一个工具,可以扫描和修复系统文件。打开命令提示符(以管理员身份运行),然后输入以下命令并按回车键执行: ``` sfc /scannow ``` 等待扫描和修复过程完成,然后重新启动计算机。 3. 检查和更新驱动程序:确保你的计算机中所有的驱动程序都是最新的版本。你可以访问计算机制造商的官方网站或使用第三方驱动程序更新工具来检查和更新驱动程序。 4. 运行磁盘错误检查:你可以使用Windows自带的磁盘错误检查工具来扫描和修复硬盘上的错误。打开命令提示符(以管理员身份运行),然后输入以下命令并按回车键执行: ``` chkdsk C: /f ``` 注意:将 "C:" 替换为你需要检查的磁盘驱动器符号。 5. 执行系统还原:如果你最近对系统做了更改,例如安装新软件或更新驱动程序,可以尝试使用系统还原将系统恢复到之前的状态。 如果上述方法都无法解决问题,你可能需要进一步调查特定应用程序的错误日志或联系该应用程序的开发者获取技术支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值