[問題] 有關連結硬體的問題

看板C_and_CPP (C/C++)作者 (control)時間16年前 (2009/04/22 16:52), 編輯推噓0(006)
留言6則, 2人參與, 最新討論串1/2 (看更多)
我是用VC++來透過USB來連結硬體, 我有硬體廠商的SDK,本身也是透過USB來連結. 我想請問一下下面步驟我哪裡做錯了: 我先新增專案,然後選擇專案類型是一般,然後我廠商的SDK引入專案裡面. //////////////////////////////////////////////////////////////////////////// // Free running color example // // // Copyrights by Photonfocus AG and Silicon Software //////////////////////////////////////////////////////////////////////////// //include USB-SDK #include "..\include\FramegrabberArea.h" //include camera-SDK extern "C" { #include "..\..\..\PFRemote\SDK\common.h" }; //microDisplayUSB needs modulo 8 values for WIDTH and HEIGHT. //Otherwise the image can be wrong // //If it's not possible to set modulo 8 values to camera (BLIZZARD), //set image size on camera bigger than image size on microDisplayUSB #define WIDTH 640 #define HEIGHT 480 //////////////////////////////////////////////////////////////////////// // Main Funktion // int main(int argc, char* argv[], char* envp[]) { FramegrabberArea FGS; int nr_of_buffer, nCamPort, status, error, maxPics; DEVICE d; char *portname, data[64]; float f; nCamPort = PORT_A; //Init microEnable Framegrabber //Specify here the dll-name of your camera model (HURRICANE-40-U2 = hurrican40u2.dll) //Directory: microDisplayUSB\dll if((status = FGS.InitGrabber("../../dll/mvd640cu2.dll", 0)) < 0){ return status; } else{ fprintf(stdout, "Init Grabber ok\n"); } //Init PFLib-SDK (Photonfocus-SDK) portname = (char*)pfPortList()[DEFAULT_PORT_INDEX]; //usb0 error = pfDeviceOpen(portname, &d); printf("Opening camera on port %s...\n", portname); if(error < 0){ handleError(error); return -1; } //Reset Camera SetPropertyString(d, "Reset", "1"); //Set ROI SetPropertyInt(d, "Window.W", WIDTH); SetPropertyInt(d, "Window.H", HEIGHT); //Get ExposureTime error = GetPropertyString(d, "ExposureTime", data); if(!error){ printf("ExposureTime: %s\n", data); } //Set ExposureTime to 20ms f = 20.0; SetPropertyFloat(d, "ExposureTime", f); //Get ExposureTime error = GetPropertyFloat(d, "ExposureTime", &f); if(!error){ printf("ExposureTime: %f\n", f); } //End of PFLib-SDK //Set image size if((status = FGS.SetImageSize(nCamPort, WIDTH, HEIGHT)) < 0){ return status; } else { fprintf(stdout, "Set Image Size on port %d (w: %d,h: %d) ok\n", nCamPort, FGS.GetWidth(nCamPort), FGS.GetHeight(nCamPort)); } /* Set CameraLink settings Color cameras: FG_COl24 Grey cameras 8bit: FG_GRAY Grey cameras 16bit: FG_GRAY16 Bit resolution: FG_CL_SINGLETAP_8_BIT, FG_CL_SINGLETAP_10_BIT, FG_CL_SINGLETAP_12_BIT for more information see SDK documenataion HURICANE-40-U2: 8bit: FGS.SetFormatCL(nCamPort, FG_CL_SINGLETAP_8_BIT, 0, FG_MSB, FG_NO, FG_NO, FG_GRAY) 8bit, 2bit shifted: FGS.SetFormatCL(nCamPort, FG_CL_SINGLETAP_10_BIT, 2, FG_MSB, FG_NO, FG_NO, FG_GRAY) 8bit, 4bit shifted: FGS.SetFormatCL(nCamPort, FG_CL_SINGLETAP_12_BIT, 4, FG_MSB, FG_NO, FG_NO, FG_GRAY) real 10bit FGS.SetFormatCL(nCamPort, FG_CL_SINGLETAP_10_BIT, 0, FG_MSB, FG_NO, FG_NO, FG_GRAY16) real 12bit FGS.SetFormatCL(nCamPort, FG_CL_SINGLETAP_12_BIT, 0, FG_MSB, FG_NO, FG_NO, FG_GRAY16) THUNDER-90-U2: 8bit: FGS.SetFormatCL(nCamPort, FG_CL_SINGLETAP_8_BIT, 0, FG_MSB, FG_NO, FG_NO, FG_GRAY) 8bit, 2bit shifted: FGS.SetFormatCL(nCamPort, FG_CL_SINGLETAP_10_BIT, 2, FG_MSB, FG_NO, FG_NO, FG_GRAY) 8bit, 4bit shifted: FGS.SetFormatCL(nCamPort, FG_CL_SINGLETAP_12_BIT, 4, FG_MSB, FG_NO, FG_NO, FG_GRAY) real 10bit FGS.SetFormatCL(nCamPort, FG_CL_SINGLETAP_10_BIT, 0, FG_MSB, FG_NO, FG_NO, FG_GRAY16) real 12bit FGS.SetFormatCL(nCamPort, FG_CL_SINGLETAP_12_BIT, 0, FG_MSB, FG_NO, FG_NO, FG_GRAY16) BLIZZARD-60-U2: 8bit: FGS.SetFormatCL(nCamPort, FG_CL_SINGLETAP_8_BIT, 0, FG_MSB, FG_NO, FG_NO, FG_GRAY) MV-D640-48-U2 8bit: FGS.SetFormatCL(nCamPort, FG_CL_SINGLETAP_8_BIT, 0, FG_MSB, FG_NO, FG_NO, FG_GRAY) MV-D640C-48-U2 8bit: FGS.SetFormatCL(nCamPort, FG_CL_SINGLETAP_8_BIT, 0, FG_MSB, FG_NO, FG_NO, FG_COL24) */ if((status = FGS.SetFormatCL(nCamPort, FG_CL_SINGLETAP_8_BIT, 0, FG_MSB, FG_NO, FG_NO, FG_COL24)) < 0){ return status; } else{ fprintf(stdout, "CamerLink format setting.\n"); } //Set trigger mode if((status = FGS.SetTriggerMode(nCamPort, FREE_RUN)) < 0){ return status; } else{ fprintf(stdout, "Set Trigger and Grabber mode to FreeRun\n"); } //Create Window to show images FGS.CreateDisplay(nCamPort); //allocate memory nr_of_buffer = 8; //work with 8 buffers if((status = FGS.AllocateFramebufferEx(nCamPort, nr_of_buffer)) < 0){ return status; } else{ fprintf(stdout, "%d framebuffer allocated for port %d ok\n", nr_of_buffer, nCamPort); } //start grabbing if((status = FGS.StartAcquireEx(nCamPort, GRAB_INFINITE, ACQ_STANDARD)) < 0){ fprintf(stdout, "Grabbig failed \n"); return status; } else{ fprintf(stdout, "start grabbing ... ok\n"); } maxPics = 100; //grab 100 images while((status = FGS.GetLastPicNumberBlockingEx(nCamPort)) < maxPics) { if(status < 0){ break; } FGS.DrawLastBufferEx(nCamPort); } // ==================================================== FGS.CloseDisplay(nCamPort); //close camera - SDK error = pfDeviceClose(d); if(error < 0) return error; //free of frame grabber ressources FGS.StopAcquireEx(nCamPort); FGS.FreeMem(nCamPort); FGS.FreeGrabber(); return 0; } 當我引入完畢後.我建置專案,程式沒出現錯誤. 但當我執行時,卻出現"此專案組態已過期" 然後接下來說系統找不到指定檔案. 請問我是哪一步出錯呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.41.12

04/22 17:53, , 1F
"此專案組態已過期", 表示你沒有成功build出來, 所以根
04/22 17:53, 1F

04/22 17:53, , 2F
本沒有可以執行的檔案, 或者沒有設定target file....
04/22 17:53, 2F

04/22 17:54, , 3F
總之先試著Re-Build All, 再check專案屬性Linker裡的
04/22 17:54, 3F

04/22 17:54, , 4F
Output File到底有沒有生出來; 如果solution內有多的
04/22 17:54, 4F

04/22 17:54, , 5F
Project, 也可能是Start Project設的不對所以找不到.
04/22 17:54, 5F

04/23 11:00, , 6F
謝謝V大,我試試看在上來回報^^
04/23 11:00, 6F
文章代碼(AID): #19xjhLJ- (C_and_CPP)
文章代碼(AID): #19xjhLJ- (C_and_CPP)