我在帮人做个图像压缩软件的可视化界面
可是他的图像压缩程序是用C写的
我不知道怎么把代码移植过来
谁能帮帮我呀
很急!!!!
解决就结帐!!!!
可是他的图像压缩程序是用C写的
我不知道怎么把代码移植过来
谁能帮帮我呀
很急!!!!
解决就结帐!!!!
解决方案 »
- VB如何接收从DLL发来的消息
- 高高高高手请进:用API函数mciSendString在自己的窗体Form1中播放视频图像,用GetTopWindow可以获得该图像窗口的句柄h2=GetTopWindow(For
- 谁能告诉我 rs.cursorType=adopen.keyset 和rs.LOckType=adLockOptimistic 语句个是什么意思具体点
- 通过ISDN或adsl上网的两台电脑,如何能使两台电脑像局域网一样通信???
- vb全局hook问题
- 还是关于执行DOS命令的问题,请高手解答,在线等
- 所在企业有网站的请进!
- 一个无关大局但是让人心烦的问题
- 大家谁会写这条SQL语句啊?
- 一段代码,为什么rs.recordcount总是-1呢?
- 怎么在xp下更改桌面壁纸(用api)???
- 超级链接问题,高手请进!
可不可以把C源程序生成.EXE文件,嵌入VB中呢?
ActiveX DLL:
regsvr32 cfile.dll
在VB中project->reference
然后创建对象,并调用其方法
2. 普通动态连接库
这就需要申明函数了,可以参考其它API申明的方式来做。
private declare function add lib "cfile" alias "add" (byval a as integer,byval b as integer) as integer
---------------------------------------------------------------
在VC里,函数名登记到.def文件里了没有?注意不是__declspec(dllexport)这个。
.def文件里一定要有:
EXPORTS
add @1
---------------------------------------------------------------
自己定义也可以。
或者你用VC工程向导的“MFC AppWizard(dll)”->“Regular Dll with shared MFC”也就是第二项,这个就为你生成了.def。
用MFC的DLL要有MFC支持哦~设计接口参数时,可 别 来个“... Func(CWordArray &a)”这样的东东……
---------------------------------------------------------------
主要是接口问题,我举个最简单的倒子给你:
一、在VC中建一个动态连接库工程取名XX,不要MFC支持
二、建一个C/C++文件,如XX.C,内容如下:
SHORT SumTwo(SHORT a,SHORT b)
{
return a+b;
}
三、建一个DEF文件,如XX.DEF,内容如下:
EXPORTS
SumTwo
四、将这两个文件都加入当前工程XX
五、将当前工程编译成XX.DLL
六、用VB来调用SumTwo这个函数,建新VB工程
七、在默认的FORM上加上一个按钮Command1
八、在Command1的OnClick中加入
MsgBox SumTwo(3,4) '显示3+4的值
九、将前面生成的XX.DLL复制到VB工程所在目录
十、在这个文件的最前面声明SumTwo这个函数
Private Function SumTwo Lib "XX.DLL" alias "SumTwo" (a As Integer,b As Integer) As Integer
十一、运行这个VB程,点击Command1按钮,你将得到3+4的和7
十二、关于第(十)步函数的声明请参看MSDN中的相关资料,
主要是参数和返回值的数据类型不能弄错。
---------------------------------------------------------------
在VC中生成的DLL只有是扩展的DLL才能被其它语言调用,所以你在VC中生成的DLL可能不是扩展的,因此约定出错的,你把你VC的DLL改成扩展的就可以了。
可不可以把C源程序生成.EXE文件,嵌入VB中呢?不可以.!