2007 年 12 月
      1
2345678
9101112131415
16171819202122
23242526272829
3031   
上一年下一年   上一月下一月

站点统计
日志:516 篇
评论:331 篇
留言:31 篇
收藏夹:0 个书签
会员数:149 人

最新评论
上海地区广告伞太阳伞专业...
没附件了郁闷,还在的话麻...
已经发送到你的邮箱了,请...
写了一个进程间通讯的类....
行啊,二博客都一样
已经发送了附件到你的邮箱...
老马写的..可惜没的附件...
欢迎!
谢谢了。
第一次走进您的博客,^_...


小项目搞定,Money入了口袋~~~~   [ 2006-08-11 | 作者:马大哈 | 来自:本站原创]

1500成功进入口袋.

其实对方打过来1700,因为我还花了180买了个ATI7000的双头显卡.

爽~~

结果刚做完这个,那个朋友又说马上又有一个项目,问我要不要做,关于USB电话录音盒的,¥2000,时间最长一个月.

当然是做啦!!

然后他就发来了那个USB板子,让我来做.

这个程序由于对方要求要用VC做,而我不会......

所以朋友帮我与项目客户商量了一下,用VC写核心,用VB写界面.

OK,这个没问题,因为客户随卡提供了一个BCB例程,与C差不多,在VC里改了一下,编译成了一个DLL,并做好了接口,供VB里调用.

里面有个问题就是字符串的返回问题.

我要从DLL里把字符串数据返回到VB里,怎么做呢?函数直接返回字符串是不可能的(VB内部函数可以).

我自己还没有做过这个,所以查了些资料.

结果我硬盘里的资料也没有说到这个问题.只说到如何写VB能调用的DLL.

于是就仿照MS那样,向缓冲区写内容,再返回写入的长度.

如下:

//把打入电话号码存入指定缓冲区,同时返回复制的字符串个数
WORD WINAPI GetInTelNum(char *tmpNum)
{
strcpy (tmpNum,InTelNum);
return strlen(tmpNum);
}

那么VB里的声明就是这样:

Public Declare Function GetInTelNum Lib "RECBox_DLL.dll" (ByVal TelNum As String) As Long

参数"ByVal TelNum As String"一定要是个足够长的定长字符串才行.不然有问题.

调用就好说了:

Dim tmpTelNum As String * 255
Dim TelNum As String
Dim I As Long

I = GetInTelNum(tmpTelNum)
If I <> 0 Then
TelNum= Left(tmpTelNum, I)
Else
TelNum = ""
End If

好,以后写VC VB混合程序,就知道一种方法了.

加油干~~~~~¥2000呢~~

PS:

这位朋友说,叫我加油写,因为他手头还有几个项目呢!

真的是"日有所思,夜有所梦"吗? 我开始讨厌梦了--------------为什么又梦到她了?

 马大哈 于 2006-12-04 07:13 PM 发表评论: 

请问这位是............?

 tanaya 于 2006-12-02 10:25 PM 发表评论: 

强,这好事啊 羡慕了