| 導購 | 订阅 | 在线投稿
分享
 
 
 

C-Sharp調用標准動態庫(記錄)

2008-12-13 08:24:08  編輯來源:互聯網  简体版  手機版  移動版  評論  字體: ||

C#調用Win32API

軟件環境: VC6.0(當然其他版本的VC5也可以)

1.制作標准動態庫

__declspec(dllexport) int __cdecl add(int, int);//這一句是聲明動態庫輸出一個可供外不調用的函數原型.

int add(int a,int b) {//實現這個函數

return a+b;

}

以上簡單3行代碼,聲明一個add的方法, 輸入參數是兩個int參數,返回這兩個數之和. 保存爲MyLib.c

然後執行編譯命令.

H:\XSchool\C#-School\HowTo>cl /LD MyLib.c

Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86

Copyright (C) Microsoft Corp 1984-1998. www.devdao.com All rights reserved.

MyLib.c

Microsoft (R) Incremental Linker Version 6.00.8447

Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

/out:MyLib.dll

/dll

/implib:MyLib.lib

MyLib.obj

Creating library MyLib.lib and object MyLib.exp

確信有以上輸出, 說明編譯成功生成了動態庫.

2.編寫C-Sharp程序調用該動態庫

using System;

using System.Runtime.InteropServices;//這是用到DllImport時候要引入的包

public class InvokeDll {

[DllImport("MyLib.dll", CharSet=CharSet.Auto)]

static extern int add(int a,int b);//聲明外部的標准動態庫, 跟Win32API是一樣的.

public static void Main() {

Console.WriteLine(add(10,30));

}

}

保存爲InvokeDll.cs文件, 與MyLib.dll置于同一目錄, 編譯該文件.

H:\XSchool\C#-School\HowTo>csc invokedll.cs

將生成Invokedll.exe, 可以執行該文件.

引用

以上是C-Sharp調用標准動態庫的全過程, 本來覺得很簡單的東西, 一直都沒有想寫, 碰巧今日遇一朋友問及此事, 就順便寫了下來. 有什麽問題可以聯系zlyperson@163.net

  C#調用Win32API   軟件環境: VC6.0(當然其他版本的VC5也可以)    1.制作標准動態庫   __declspec(dllexport) int __cdecl add(int, int);//這一句是聲明動態庫輸出一個可供外不調用的函數原型.   int add(int a,int b) {//實現這個函數   return a+b;   }     以上簡單3行代碼,聲明一個add的方法, 輸入參數是兩個int參數,返回這兩個數之和. 保存爲MyLib.c   然後執行編譯命令.   H:\XSchool\C#-School\HowTo>cl /LD MyLib.c   Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86   Copyright (C) Microsoft Corp 1984-1998. [url=http://www.devdao.com]www.devdao.com[/url] All rights reserved.   MyLib.c   Microsoft (R) Incremental Linker Version 6.00.8447   Copyright (C) Microsoft Corp 1992-1998. All rights reserved.   /out:MyLib.dll   /dll   /implib:MyLib.lib   MyLib.obj   Creating library MyLib.lib and object MyLib.exp   確信有以上輸出, 說明編譯成功生成了動態庫.   2.編寫C-Sharp程序調用該動態庫   using System;   using System.Runtime.InteropServices;//這是用到DllImport時候要引入的包   public class InvokeDll {    [DllImport("MyLib.dll", CharSet=CharSet.Auto)]    static extern int add(int a,int b);//聲明外部的標准動態庫, 跟Win32API是一樣的.    public static void Main() {     Console.WriteLine(add(10,30));     }   }   保存爲InvokeDll.cs文件, 與MyLib.dll置于同一目錄, 編譯該文件.   H:\XSchool\C#-School\HowTo>csc invokedll.cs   將生成Invokedll.exe, 可以執行該文件. 引用 以上是C-Sharp調用標准動態庫的全過程, 本來覺得很簡單的東西, 一直都沒有想寫, 碰巧今日遇一朋友問及此事, 就順便寫了下來. 有什麽問題可以聯系[url=mailto:zlyperson@163.net]zlyperson@163.net[/url]
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
王朝網路微信公眾號
微信掃碼關註本站公眾號 wangchaonetcn
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有