C++函数怎么在VB使用

有几个C++的函数,但是不会C++的窗口制作,想到用VB来做界面。但是怎么让vb调用C++的函数呢?可以把C++中的函数变成DLL的给VB调用吗?如果可以怎么生成DLL文... 有几个C++的函数,但是不会C++的窗口制作,想到用VB来做界面。但是怎么让vb调用C++的函数呢?
可以把C++中的函数变成DLL的给VB调用吗?如果可以怎么生成DLL文件并在VB中调用。
展开
 我来答
ahcc08
2013-05-25 · 知道合伙人软件行家
ahcc08
知道合伙人软件行家
采纳数:11853 获赞数:51939
拥有丰富的软件开发经验。

向TA提问 私信TA
展开全部
可以把C++中的函数变成DLL的给VB调用。

一、首先,使用vs2008创建windows32控制台程序,选择dll复选框,确定。

然后在stdafx.h头文件中声明导出函数,举例如下

__declspec(dllexport) int add(int a ,int b);//add是函数名,可声明多个

__declspec(dllexport) int sub(int a ,int b);

如果创建的是C++工程则需要在函数声明前加上extern "C"

变成: extern "C" __declspec(dllexport) int add(int a ,int b);

extern "C" __declspec(dllexport) int sub(int a ,int b);

接着在你创建的C文件中实现上述函数体,如下

int __declspec(dllexport) add(int a ,int b)

{

return a+b;

}

int __declspec(dllexport) sub(int a,int b)

{

return a-b;

}

这个是C++中,如果仅仅使用一个c文件实现dll,举例如下

#include <windows.h>

__declspec(dllexport) int add(int a ,int b);

__declspec(dllexport) int sub(int a ,int b);

BOOL APIENTRY DllMain( HMODULE hModule,

DWORD ul_reason_for_call,

LPVOID lpReserved

)

{

switch (ul_reason_for_call)

{

case DLL_PROCESS_ATTACH:

case DLL_THREAD_ATTACH:

case DLL_THREAD_DETACH:

case DLL_PROCESS_DETACH:

break;

}

return TRUE;

}//这段代码c++工程自动生成

__declspec(dllexport) int add(int a ,int b)

{

return a+b;

}

int __declspec(dllexport) sub(int a,int b)

{

return a-b;

}

二、C调用dll

在创建一个新的工程。把之前生成的dll文件拷贝入调用工程的debug文件夹下。如果想方便,就顺便把lib文件也拷贝到debug下,因为三要用。键入如下代码:

#include<stdio.h>

#include <windows.h>

int main()

{

typedef int (*ADD)(int ,int);//函数指针类型

HINSTANCE Hint = LoadLibrary("adddll.dll");//加载我们刚才生成的dll

ADD add = (ADD)GetProcAddress(Hint,"add");//取得dll导出的add方法

printf("%d",add(3,4));

return 0;

}

当提示错误error C2664: “LoadLibraryW”: 不能将参数 1 从“const char [13]”转换为“LPCWSTR” 时,需要步骤三。

三、C调用lib,

把上述工程生成的lib文件拷入建立的工程下,然后在代码中加入如下语句

#pragma comment(lib,"adddllcpp.lib")

extern int add(int ,int);//没有加这句而只加上面这句(或在工程设置里加上DLL.lib)会链接错误

extern int sub(int ,int);

注意:工程属性字符集必须改成“使用多字节字符集”。
追问
想在vc++6.0上做,能教我具体的步骤吗?如果可以从新建开始教,不然给我代码我也不知道该写在那里。
顺便问一下dll的函数可以调用自己dll的函数吗?
空雪梦见
2013-05-25 · TA获得超过5597个赞
知道大有可为答主
回答量:2522
采纳率:75%
帮助的人:1196万
展开全部
可以制作DLL给VB用。
首先你要学习如何将你的函数正确导出给vb(其实就是 __declspec(dllexport) 和 __stdcall,必要时还有 extern "C" ,上网搜一下应该很容易找到教学)
然后你确定dll导出的函数的名字以后(对,可能和你代码写的不同),在vb里用declare声明函数(上网搜教学去……)
之后你就可以直接调用declare声明的那些函数了。运行的时候系统会去加载dll、执行里面的函数

dll要和vb生成的exe放在同一个文件夹下,或者把dll丢到 c:\windows\system32 里面
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式