현재 Visual Studio C++ 2010에서 데이터 획득 시스템 용 UI를 작성하려고하고 있으며 제 3 자 라이브러리의 인터페이스를 다루는 데 많은 어려움을 겪고 있습니다. 사용 및 Windows Forms. 내가 사용하고있는 두 라이브러리는 DAQX, Data Acquestion System 용 C 라이브러리 및 1394 고속 카메라 용 C++ 라이브러리 인 VITCam입니다. 함수 인수가 없기 때문에 VS가 제공해야하는 이러한 라이브러리 및 UI 라이브러리로 작업하는 것은 매우 실망 스럽습니다.비 관리 정적 라이브러리와 함께 Windows Forms 및 VC++ 사용
DAQX는 일반 C 방식으로 WORD 및 DWORD와 같은 Windows 유형을 사용하고 정상적인 프로그램을 작성할 때 UI는 포함되지 않지만 잘 작동하지만 Windows Forms는 언제든지 간단한 DWORD를 만들고 싶어합니다. 클래스 내부의 배열.
VITCam이 더 나쁩니다. 나는 카메라를 잘 열어도되지만, 어떻게 든 화면에 이미지를 넣으려고 할 때 나는 완전히 잃어버린다. 나는 문서를 박았 방법으로 화면에 넣어위한 방법을 따르으로 쉽게 equivalanet을 발견하지 않은 : 그대로
CDC* pDC=GetDC(); // obtain the device context for your window...
// move the image data
::SetDIBitsToDevice(pDC->m_hDC,0,0,
(int) (MyCam.GetDispBuf()->bmiHeader.biWidth),
(int) (MyCam.GetDispBuf()->bmiHeader.biHeight),
0,0,0,(WORD) (WORD) MyCam.GetDispBuf()->bmiHeader.biHeight,
MyCam.GetDispPixels(),MyCam.GetDispBuf(),
DIB_RGB_COLORS);
나는 거의 그것을 따를 수 있습니다. 따라서 많은 노력을 기울이지 않고도 Windows Forms을 염두에두고 개발되지 않은 정적 인 관리되지 않는 라이브러리로 대부분의 사람들이 어떻게 작업합니까? VITCam 문서에서 언급했듯이 MFC를 사용해 보았지만 Windows Forms만큼이나 직관적이지는 않습니다.
편집 : 정상적인 (적어도 나에게) 배열을 사용하려고 할 때 나타나는 오류 메시지입니다.
오류 1 오류 C4368 : 관리 'WirelessHeadImpact :: Form1에'의 멤버로 '버퍼'정의 할 수 없습니다 : 혼합 유형
지원 그리고 그것은이 라인을 가리키는되지 않습니다private:
WORD buffer[BUFFSIZE*CHANCOUNT];
무엇 I 전에이 있었다 있었다 :
static array<WORD>^ _buffer;
및 함수 I에서 다음으로 반복하고 ARRA를 업데이트 한 후, 후자를 반환 함수에 전달, 전자 배열을 만들 와이.
WORD buffer[BUFFSIZE*CHANCOUNT];
DWORD scansCollected = 0;
while (total_scans < SCANS) {
daqAdcTransferBufData(_handle, buffer, BUFFSIZE, DabtmWait, &scansCollected);
if (scansCollected > 0) {
for (WORD i=0;i<scansCollected;i++) {
_buffer[i] = buffer[i];
}