⑴ 請問在keil環境下,STM32(M3系列)如何調用dll這樣的動態庫
不能啊,dll是window系統的庫功能調用,stm32壓根就沒有window系統支持,別想了。
⑵ 如何將一個類(.cs)文件編譯成.dll文件
2、在命令工具中輸入 csc /t:library /r:System.Web.dll /r:System.dll /out: 目標文件名 源路徑/源文件名。 csc /target:library /out:e:/cyc/asp.Net/words/database.dll e:/cyc/asp.Net/words/as.Net2.0news/app_code/compon.Nets/databse.cs 3、為避免每次編譯的麻煩,可以建立cmd文件如csd_dl.cmd ,代碼如下:cd/d:cd D:/sys03/microsoft.Net/framework/v1.4322 csc /t:library /r:System.Web.dll /r:System.dll /out:E:/web/bin/WebTools.dll e:/web/bin/DbLink.cscmd- 輸出文件 - /out:<file 輸出文件名(默認值: 包含主類的文件或第一個文件的基名稱) /target:exe 生成控制台可執行文件(默認) (縮寫: /t:exe) /target:winexe 生成 Windows 可執行文件 (縮寫: /t:winexe) /target:library 生成庫 (縮寫: /t:library) /target:mole 生成能添加到其他程序集的模塊 (縮寫: /t:mole)
⑶ keil5編譯按鈕在哪
keil5編譯按鈕在:Debug--找到圖中所示按鈕即為單步運行。
分別由C51及C51編譯器編譯生成目標文件(.obj)。目標文件可由LIB51 創建生成庫文件,也可以與庫文件一起經L51 連接定位生成絕對目標文件(.abs)。abs文件由OH51 轉換成標準的hex 文件,以供調試器dScope。
Keil C51單片機軟體開發系統的整體結構:
C51工具包的整體結構,μVision與Ishell分別是C51 for Windows 和for Dos 的集成開發環境(IDE),可以完成編輯、編譯、連接、調試、模擬等整個開發流程。開發人員可用IDE本身或其它編輯器編輯C或匯編源文件。
然後分別由C51及C51編譯器編譯生成目標文件(.obj)。目標文件可由LIB51 創建生成庫文件,也可以與庫文件一起經L51 連接定位生成絕對目標文件(.abs)。
abs文件由OH51 轉換成標準的hex 文件,以供調試器dScope51 或tScope51 使用進行源代碼級調試,也可由模擬器使用直接對目標板進行調試,也可以直接寫入程序存貯器如EPROM中。
⑷ 如何編譯DLL文件
好了 怎麼給你?郵箱?
⑸ c怎麼生成dll文件
用 vc 6.0 下的cl.exe 和 link.exe工具,請讀下文:
聲明:下面這篇文章不是我寫的,源自:一個叫,有容乃大 的博客
如何手工編寫動態鏈接庫(windows dll)
1.本例介紹在命令行(Console)環境下製作dll的方法
2.讀者動手前,請確保在windows中安裝有編譯、鏈接工具和必要的函數庫文件。
3.本例使用C語言實現.
4.本例中使用路徑均為我機器上的絕對路徑,讀者需根據實際情況調整。
工具要求:
Microsoft的編譯器cl.exe
MIcrosoft鏈接器link.exe
dll製作步驟:
1.編寫dll函數實現源代碼hello.c
#include
int say_hello(char* name)
{
printf( "hello %s\n ", name);
return 1;
}
2.編寫dll函數輸出定義文件hello.def.
LIBRARY hello
EXPORTS
say_hello @1
3.編譯dll源碼,生成dll,lib文件.
3.1 新建命令行窗口
3.2 設置PATH �0�7 INCLUDE �0�7 LIB 3個環境變數.
SET PATH=K:\vcnet\vc7\bin;%PATH%
SET INCLUDE=K:\vcnet\vc7\include;%INCLUDE%
SET LIB=K:\vsnet\Vc7\lib;%LIB%
3.3 編譯hello.c
cd K:\Source\dllsample (hello.c和hello.def所在目錄)
cl /c hello.c
3.4 鏈接hello.obj,生成hello.dll,hello.lib兩個文件.
link /def:hello.def /dll hello.obj
4.測試dll函數.
4.1 編寫測試代碼 test.c
extern int say_hello(char* name);
int main(int argc,char** argv)
{
say_hello( "robbie ");
return 0;
}
4.2 編譯測試代碼test.c
cl /c test.c
4.3 鏈接test.obj和 hello.lib,生成可執行文件test.exe
link test.obj hello.lib
4.4 運行test.exe,屏幕輸出:
hello robbie
至此,一個dll構造完畢.
下面是我自己的一點補充:
如果要在c++下,或者win32 mfc下使用標准c寫的dll,必須把上面的聲明
extern int say_hello(char* name);改成:extern "C " int say_hello(char* name);
⑹ C語言程序怎麼編譯成dll文件供其他語言調用
C程序編譯成dll文件只不過是在要公開的介面函數聲明前面加上幾個特定的修飾符而已。
下面是個例子,用dev-cpp建了個dll的默認文檔
/*dll.h文件*/
#ifndef _DLL_H_
#define _DLL_H_
#if BUILDING_DLL
# define DLLIMPORT __declspec (dllexport)
#else /* Not BUILDING_DLL */
# define DLLIMPORT __declspec (dllimport)
#endif /* Not BUILDING_DLL */
DLLIMPORT void HelloWorld (void);
#endif /* _DLL_H_ */
/*dllmain.c文件*/
/* Replace "dll.h" with the name of your header */
#include "dll.h"
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
DLLIMPORT void HelloWorld ()
{
MessageBox (0, "Hello World from DLL!/n", "Hi", MB_ICONINFORMATION);
}
BOOL APIENTRY DllMain (HINSTANCE hInst /* Library instance handle. */ ,
DWORD reason /* Reason this function is being called. */ ,
LPVOID reserved /* Not used. */ )
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
break;
case DLL_PROCESS_DETACH:
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
}
/* Returns TRUE on success, FALSE on failure */
return TRUE;
}
具體請參考jilei08124的CSDN博客
⑺ 如何使用Keil編譯匯編程序或C語言程序
打開Keil後選擇【File】下的【new】新建一個空白文檔。將編輯好的程序源碼復制到該文件中。
如何使用Keil編譯匯編程序或C語言程序
選擇左上角的保存按鈕進行保存,將彈出保存對話框。
如何使用Keil編譯匯編程序或C語言程序
選擇保存路徑和編輯文件名。記住,這里的文件名很重要,如果你是C語言程序的話,加上.c後綴,如果你是用匯編語言,加上.ASM後綴。這樣,Keil就能自動識別你的文件類型了。
如何使用Keil編譯匯編程序或C語言程序
現在你就可以將保存的文件添加到項目中了,項目文件要提前在[Project]中新建。右擊選擇【Source Group1】點擊【Add Files to Group..】
如何使用Keil編譯匯編程序或C語言程序
在彈出的對話框中選擇[文件類型]為All files,這個很關鍵。然後選擇你要添加的文件。點擊Add添加。
如何使用Keil編譯匯編程序或C語言程序
在[Source Group]中就會顯示新添加的.ASM文件,按圖中選擇彈出【Option for Target】對話框。
如何使用Keil編譯匯編程序或C語言程序
7
切換到[output]選項卡選中【Create HEX FILE】,就可以在編譯成功後自動生成.hex文件。編譯按鈕在左上角3個按鈕,從左到右依次點擊,如果源碼沒錯,都可以編譯通過了。
如何使用Keil編譯匯編程序或C語言程序
⑻ 如何把dll文件反編譯修改之後的文件編譯成dll
你在你的solution中新建一個工程,然後把a.cs,b.cs,c.cs添加到這個工程裡面(我建議你新建類,然後把類的代碼過去,這樣即使命名空間不同也不會造成混亂)
然後再你引用的工程里addreference->project->你新建的這個工程,就可以調用了.
這樣如果你需要修改的話直接在ide里修改,可以實時看到效果
⑼ 如何編譯生成dll
使用VC下的cl和link手工創建dll並實現函數導入
1、創建dll頭文件:
/*
* dllmain.h
*/
#ifndef _DLLMAIN_H
#define _DLLMAIN_H
int getNumber();
#endif
2、創建dll源文件:
/*
* dllmain.c
*/
#include "dllmain.h"
int getNumber()
{
return 10;
}
3、 創建def文件:
; export.def
LIBRARY MY_DLLMAIN ; MY_DLLMAIN 將成為生成的dll的名稱
EXPORTS
getNumber @1 ; 這個名稱即為函數的實際導出名稱 @1為函數的導出編號
4、生成dll文件:
cl dllmain.c /c
link /def:export.def /dll dllmain.obj
這時,工程中已經包含了 dllmain.h dllmain.c export.def dllmain.obj dllmain.lib dllmain.exp MY_DLLMAIN.dll 其中,後4個文件是編譯鏈接過程中生成的文件
5、創建dlltest.c:
/*
* dlltest.c
*/
#include <stdio.h>
#include "dllmain.h" //dll庫的頭文件
#pragma comment(lib,"dllmain.lib") //dllmain.lib即是上一步生成的文件
int main()
{
printf("%dn",getNumber());
}
6、編譯、鏈接dlltest.c
cl dlltest.c /c
link dlltest.obj
注意:這里dllmain.lib和dllmain.h應該和dlltest.c在同一個目錄中。此步的結果將生成 dlltest.exe
7、運行:
dlltest
這時,系統將載入my_dllmain.dll這個動態鏈接庫,將調用其中的getNubmer函數。