English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

我查了很久

終於給我查到一個可以成功編譯的Webcam擷取畫面的程式了

好好的研究了一番之後

我發現到我有一個地方有非常大的疑惑

就跟標題所說的一樣

程式碼寫

[DllImport("avicap32.dll")]
protected static extern int capCreateCaptureWindowA(
[MarshalAs(UnmanagedType.VBByRefStr)] ref string lpszWindowName,
int dwStyle, int x, int y, int nWidth, int nHeight,
int hWndParent, int nID);

我目前懂他是呼叫api

但是當我對這個api不熟悉的時候

該怎麼知道有哪些函式可以被我使用呢?

在這一行[DllImport("avicap32.dll")]的下面的程式碼不就需要知道要使用哪個方法嗎?

難道只能一個一個用MSDN去查嗎??

請各位高手們排解我的疑惑 謝謝<( _ _ )>

2006-09-13 19:56:48 · 1 個解答 · 發問者 Ice Wind 2 in 電腦與網際網路 程式設計

請問一下 什麼是MACRO阿? 不太懂
是說dll檔沒辦法不同程式語言互通嗎?
謝謝

2006-09-14 16:34:38 · update #1

1 個解答

你的問題分兩個部份來回答
1 如果你所使用的是 windows 所提供的 API, 那,還是使用 MSDN 比較好,因為MS 提供的文件確實值得學習的。因此想使用 Webcam 的 function, 還是看看 MSDN 比較好,但是,根據我查的結果,Webcam 有很多是使用 MACRO, 因此即使你找到 API, 並無法真的可以使用該 function。
建議你,還是去找找 google 看看有沒有人已經轉成相對應的 c# function

2 針對個人寫的 dll, 你可以用一些 tool 來看看裡面包含了哪些 function。ex: VC 的 dumpbin.exe 或 borland 的 tdump.exe

結論: 還是找找 google 與 msdn 搭配 ^_^

2006-09-15 10:28:24 補充:
macro 就是巨集
舉例而言,webcam 有個函數是 capDriverConnect(int hwnd, int iIndex), 看起來是個 function, 但是實際上,他會被轉換成
0!=SendMessage(hwnd, WM_CAP_DRIVER_CONNECT, iIndex, 0)
實際上是用 SendMessage() 來處理,因此找別人處理好的 code 較為方便

2006-09-14 07:16:28 · answer #1 · answered by none 4 · 0 0

fedest.com, questions and answers