zoukankan      html  css  js  c++  java
  • c#/vb调用c编写的标准dll

    准备:

    首先打开vc++ 6.0新建工程,选择Win32 Dynamic Link-Library,命名为stdLibrary

    新建library.cpp文件,内容如下

    #include <stdio.h>
    #include <windows.h>
    
    BOOL APIENTRY DllMain( HMODULE hModule,
                           DWORD  ul_reason_for_call,
                           LPVOID lpReserved)
    {
        return TRUE;
    }
    
    
     HRESULT __stdcall  TestAdd(int i, int j)
    {
     return i + j;
    }

    接着新建Text File命名为export.def,内容如下

    LIBRARY "stdLibrary"

    EXPORTS
    TestAdd @1

    编译项目得到stdLibrary.dll

    1 vb调用stdLibrary.dll

    新建标准EXE工程,拖拽界面,如图

    右键查看代码,编写如下代码

    Private Declare Function TestAdd Lib "stdLibrary.dll" (ByVal InX As Long, ByVal InY As Long) As Long
    
    Private Sub cmdCaclute_Click()
    Dim x As Long
    Dim y As Long
    Dim result As Long
    
    x = txtX.Text
    
    y = txtY.Text
    
    result = TestAdd(x, y)
    
    txtResult.Text = result
    
    End Sub

    然后使用vb生成exe,把stdLibrary.dll拖拽到项目所在编译目录,运行即可,调用成功。

    注意:vb调用第三方dll,调试过程 Lib “stdLibrary.dll”如果不是绝对路径会报错,不懂是不是vb的bug,只要生成exe后运行就不报错了

    2 c#调用stdLibrary.dll

    编写如下代码,并且把stdLibrary.dll拖拽到Debug/Release目录

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Runtime.InteropServices;
    
    namespace csharpcallcLibrary
    {
        class Program
        {
            [DllImport("stdLibrary.dll", CallingConvention = CallingConvention.StdCall)]
            public static extern int TestAdd(int x, int y); 
    
            static void Main(string[] args)
            {
                int x = 1, y = 2,result=0;
                result=TestAdd(x, y);
                Console.WriteLine("{0} + {1} = {2}",x,y,result);
                Console.Read();
            }
        }
    }

    运行编译生成的exe,至此调用成功

  • 相关阅读:
    facesconfig详解 Crazy
    java反射学习之一反射机制概述
    axis2开发webservice程序
    java反射学习之二万能EXCEL导出
    JMF框架
    解决FF浏览器无法执行window.close()脚本
    ava:String和Date、Timestamp之间的转换
    java获取当前路径。
    JSP 动态验证码。
    dojo.mixin
  • 原文地址:https://www.cnblogs.com/passedbylove/p/4458896.html
Copyright © 2011-2022 走看看