vb.net调用vc,vbnet api

vb.net 调用vc动态链接库解决思路怎么解决

1、DLL文件放到程序的 bin\Debug文件夹下

创新互联于2013年成立,是专业互联网技术服务公司,拥有项目网站建设、做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元鼓楼做网站,已为上家服务,为鼓楼各地企业和个人服务,联系电话:18982081108

2、接DLL接口说明定义DLL要使用的函数或过程。

如: Runtime.InteropServices.DllImport("DllTest.dll") _

Shared Sub sendTo(ByVal x As String)

End Sub

3、直接调用sendto()即可

VB.net调用VC.net写的DLL出现“当前不会命中断点,还没有为该文档加载任何符号”!!急!急急!!!

两个项目的依赖关系重新设置一下,然后那个C的项目重新生成一下试试

为什么我在VB.net中调用vc++做的dll时,dllMain不执行呢?

当你用LoadLibrary加载你的DLL,或第一次调用你的DLL中的函数时,DLLMAIN才会被执行,不是一开始就执行DLLMAIN的

关于asp.net(vb.net)网站调用vc++的dll的问题

用 COM 当然可以。不过,COM 封装比较复杂,不太熟悉的话,出错调试很麻烦。而且要求的知识面较宽。

简单的封装可以这样实现:

1)通过 VS 创建一个 CLR 类库项目,在其中可以简单封装标准的 DLL 导出函数,当然,这些导出函数实际上是不导出。然后定义一个 .net 类,在这个类中定义对应所有导出函数的公共方法,然后在公共方法内部调用这些标准的 C++ 函数。生成这个 CLR DLL。

2)在VB中,可以引入这个 CLR DLL,然后 VB 就可以通过调用 CLR DLL 中定义的 .net 类来间接调用原来标准的 C++ DLL 导出函数了。

当然,因为在.net 中,所有的实现都是通过类来封装的,强调的是面向对象的编程理念。因此,可以将 C++ DLL 本来的导出函数封装成类。然后实例化一个全局 C++ 类,在后续定义的.net 类中,定义相关的公共方法,私有方法,在内部对这个全局的 C++ 类进行操作(这一切都是在同一个.cpp文件中就可以完成的,利用 cl 编译器的混编特性进行编译)。在客户程序,唯一要做的就是调用公共方法就 OK 了。

以下提供示例,楼主可以参考一下:

// CLR 类库项目。

// NestedCppClassDll.cpp

///////////////////////////////

// 非托管代码。

#pragma unmanaged

#pragma once

#include stdio.h

#include windows.h

class NestedCppClass {

public:

void PrintInfo() {

printf("NestedCppClass\r\n");

}

int Func(int i) {

return ++i;

}

};

NestedCppClass g_ncc;

#pragma managed

///////////////////////////////

///////////////////////////////

// 托管代码。

using namespace System;

namespace NestedCppClassDll {

public ref class OutClrClass

{

public:

void PrintInfo() {

Console::WriteLine("OutClrClass");

g_ncc.PrintInfo();

}

int Func(int i) {

return g_ncc.Func(i);

}

};

}

///////////////////////////////

'VB控制台项目。

'项目需要引入CLR DLL

'Module1.vb

Module Module1

Sub Main()

Dim c As NestedCppClassDll.OutClrClass

c = New NestedCppClassDll.OutClrClass

c.PrintInfo()

System.Console.WriteLine(c.Func(1))

End Sub

End Module

'控制台输出内容:

'OutClrClass

'NestedCppClass

'2

// C#控制台项目。

// 项目需要引入 CLR DLL。

// Program.cs

///////////////////////////////

using System;

using NestedCppClassDll;

namespace NestedCppClassApp

{

class Program

{

static void Main(string[] args)

{

OutClrClass c = new OutClrClass();

c.PrintInfo();

Console.Write(c.Func(1));

}

}

}

//控制台输出内容:

//OutClrClass

//NestedCppClass

//2

VB.NET 如何调用VC的DLL?

DLL是不是你自己在创建,如果不是下面的格式就没有办法调用了(需要生成的是ActiveX 控件)

extern "C" _declspec(dllexport) int _stdcall treble(int* x,int len)

{

for(int i=0;ilen;i++)

x[i]=i;

return 0;

}


网站栏目:vb.net调用vc,vbnet api
本文来源:http://scyanting.com/article/hdjpcd.html