各位好:
1、我有一個C++的頭檔案,想讓C#呼叫。不知道有沒有高手幫我把這個C++的頭檔案,幫我轉換成OCX,或者C#的類,或者DLL。讓C#可以去直接呼叫。下面是C++源代碼。
2、做一個拍照軟體,控制尼康單反拍照,有沒有有過經驗的。我下面的這個SDK里面的功能很少,誰有功能全的,可二次開發的,可不可以共享一份?
------------------------------------------------------------------------------------------------------------------------------------------------------
//注意:使用SDK時相機光圈需要調到最大。
#ifndef _CC7Dll_ // We only want to be included once
#define _CC7Dll_
//初始化相機
//回傳值:0-失敗,大于0-成功, -1-沒有找到CC7Base.dll
extern "C" _declspec(dllexport) int InitCam();
//注銷相機
extern "C" _declspec(dllexport) void UnInit();
//打開相機
//回傳值:0-失敗,1-成功。
extern "C" _declspec(dllexport) int OpenCam();
//拍照 阻塞函式
//直到拍照完成才回傳。
//回傳值:0-失敗,1-成功。
extern "C" _declspec(dllexport) int Capture();
//影像資料獲取函式
//拍照成功后呼叫
//ImgData 需要預先申請記憶體,函式只負責拷貝資料。最大解析度影像記憶體可以申請 20000000
//len 回傳影像資料長度
//width 回傳影像寬度
//height 回傳影像高度
//回傳值:0-失敗,1-成功
extern "C" _declspec(dllexport) int GetImg(unsigned char *ImgData,ULONG &len, int &width,int &height);
//設定增益
//Value 輸入范圍:0-23
//回傳值:0-失敗,1-成功
extern "C" _declspec(dllexport) int SetGain(int Value);
//設定曝光時間
//Value 輸入范圍:根據GetExposeArray 獲取串列決定
//回傳值:0-失敗,1-成功
extern "C" _declspec(dllexport) int SetExpose(int Value);
//獲取曝光時間串列
//Buff 串列資料
//BuffLen 資料長度
//回傳值:0-失敗,1-成功
/*example:
TimeList = gcnew System::Collections::Generic::List<System::String^>();
for (int i = 0; i < len; )
{
char* psStr = (char*)(buff + i);
//System::String^ ss = psStr;
TimeList->Add(gcnew System::String(psStr));
i += strlen( psStr ) + 1;
}
*/
extern "C" _declspec(dllexport) int GetExposeArray(char* Buff, int &BuffLen);
//設定亮度
//Value 輸入范圍:0-18
//回傳值:0-失敗,1-成功
extern "C" _declspec(dllexport) int SetBrightness(int Value);
//設定影像大小
//Value 輸入范圍1(2464*1632), 2(3696*2448), 3(4928*3264)
//回傳值:0-失敗,1-成功
extern "C" _declspec(dllexport) int SetImgSize(int Value);
//設定鏡頭自動校正
//Value 0-不校正,1-校正
//回傳值:0-失敗,1-成功
extern "C" _declspec(dllexport) int SetAutoDistortion(bool Value);
//直方圖優化演算法
//8位BMP圖資料
//whiteLevel 白等級值 0-255
//blackLevel 黑等級值 0-255
//Src 源影像資料 8位BMP圖資料
//Dec 目標資料記憶體 8位BMP圖資料
//width 影像寬度
//height 影像高度
extern "C" _declspec(dllexport) void MakeLUT8Bit(int whiteLevel, int blackLevel, unsigned char *Src, unsigned char *Dec, int width, int height);
//獲取相機序列號
//快取長度必須 len >= 20 char* SN為序列號快取
//在OpenCam函式執行完畢后才可以獲取到序列號
extern "C" _declspec(dllexport) bool GetCamSN(char* SN, int len);
#endif
uj5u.com熱心網友回復:
頭檔案怎么做成dll?你的這個思路很超前呀
你這個頭檔案看情況應該本身就是對一個動態庫的呼叫宣告,你在C#里面是可以呼叫這個動態庫來實作想要的功能的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/104373.html
