Excel 각 필드에 연속되는 값을 빠르게 삽입하기 위한 함수 형태.

 

CStringArray에 입력할 정보들을 추가하여 넘겨주고 내부 for문을 돌며 정보를 삽입한다.

->하나씩 접근하는 방식에 3배 정도 빨라지게 된다.

CRange range;
range.AttachDispatch(sheet.get_Cells(), true);

...

range.Select();

를 반복하면서 시간이 많이 걸린다.

 

해당 함수를 활용하여 원하는 정보 List를 빠르게 Excel에 입력하자.

 



void SetValueListData2(bool *pbRun, int nSheet,
		CString strCharCol1, int nStartRow1, CStringArray *pstrNewValueList1);



void CExcelCtrl::SetValueListData2(bool *pbRun, int nSheet,
	CString strCharCol1, int nStartRow1, CStringArray *pstrNewValueList1)
{
	if (nSheet < 1 || m_app == nullptr || 
		pstrNewValueList1 == nullptr)
		return;

	try
	{

		int nCnt1 = pstrNewValueList1->GetCount();
		if (nCnt1 > 0)
		{
			// sheet 생성, 연결 (1번 시트)
			CWorksheet sheet;
			sheet = m_worksheets.get_Item(COleVariant((short)nSheet));
			sheet.Activate();
			// range 생성, 연결
			CRange range;
			range.AttachDispatch(sheet.get_Cells(), true);

			CString strCellPos;

			for (int i = 0; i < nCnt1; i++)
			{
				if (*pbRun == false)//쓰기 중지.
					break;

				strCellPos.Format(L"%s%d", strCharCol1, nStartRow1 + i);
				range = sheet.get_Range(COleVariant(strCellPos.GetBuffer(strCellPos.GetAllocLength())), m_covOptional);
				//Data 쓰기.
				range.put_Value2(COleVariant(pstrNewValueList1->GetAt(i)));
			}
			//------------------------------------------------------
			range.ReleaseDispatch();
			sheet.ReleaseDispatch();
		}

	}
	catch (CMemoryException* e)
	{
		CMemoryException* ep = e;
		AfxMessageBox(L"CMemoryException Could not clean up workbook.");
	}
	catch (CFileException* e)
	{
		CFileException* pe = e;
		AfxMessageBox(L"CFileException Could not clean up workbook.");
	}
	catch (CException* e)
	{
		CException* pe = e;
		AfxMessageBox(L"CException Could not clean up workbook.");
	}
}

 

Nvidia Cuda GPU연산을 위한 기본 Core수를 알자.

NVIDIA Card
3000 Series
Number
of CUDA
Cores
Memory Type Memory
Interface
Width
Memory
Bandwidth
GB/sec
Base Clock
Speed
Boost Clock
Speed
NOTES
RTX-3050 2560 GDDR6 128 bit 224 GB/s 1550 MHz 1780 MHz Standard with 8 GB of Memory
RTX-3060 3584 GDDR6 192 bit 384 GB/s 1320 MHz 1780 MHz Standard with 12 GB of Memory
RTX-3060 Ti 4864 GDDR6 256 bit 448 GB/s 1410 MHz 1670 MHz Standard with 8 GB of Memory
RTX-3070 5888 GDDR6 256 bit 448 GB/s 1580 MHz 1770 MHz Standard with 8 GB of Memory
RTX-3070 Ti 6144 GDDR6X 256 bit 608 GB/s 1500 MHz 1730 MHz Standard with 8 GB of Memory
RTX-3080 8704 GDDR6X 320 bit 760 GB/s 1440 MHz 1710 MHz Standard with 10 GB of Memory
RTX-3080 Ti 10240 GDDR6X 384 bit 912 GB/s 1370 MHz 1670 MHz Standard with 12 GB of Memory
RTX-3090 10496 GDDR6X 384 bit 936 GB/s 1400 MHz 1700 MHz Standard with 24 GB of Memory
               
NVIDIA Card
2000 Series
Number
of CUDA
Cores
Memory Type Memory
Interface
Width
Memory
Bandwidth
GB/sec
Base Clock
Speed
Boost Clock
Speed
NOTES
RTX-2060 1920 GDDR6 192 bit 336 GB/s 1365 MHz 1680 MHz Standard with 6 GB of Memory
RTX-2060 Super 2176 GDDR6 256 bit 448 GB/s 1470 MHz 1650 MHz Standard with 8 GB of Memory
RTX-2070 2304 GDDR6 256 bit 448 GB/s 1410 MHz 1620 MHz Standard with 8 GB of Memory
RTX-2070 Super 2560 GDDR6 256 bit 448 GB/s 1605 MHz 1770 MHz Standard with 8 GB of Memory
RTX-2080 2944 GDDR6 256 bit 448 GB/s 1515 MHz 1710 MHz Standard with 8 GB of Memory
RTX-2080 Super 3072 GDDR6 256 bit 496 GB/s 1650 MHz 1815 MHz Standard with 8 GB of Memory
RTX-2080 Ti 4352 GDDR6 352 bit 616 GB/s 1350 MHz 1545 MHz Standard with 11 GB of Memory
Titan RTX 4608 GDDR6 384 bit 672 GB/s 1350 MHz 1770 MHz Standard with 24 GB of Memory
               
NVIDIA Card
1600 Series
Number
of CUDA
Cores
Memory Type Memory
Interface
Width
Memory
Bandwidth
GB/sec
Base Clock
Speed
Boost Clock
Speed
NOTES
GTX-1650 896 GDDR5 128 bit 128 GB/s 1485 MHz 1665 MHz Standard with 4 GB of Memory
GTX-1650 Super 1280 GDDR6 128 bit 192 GB/s 1530 MHz 1725 MHz Standard with 4 GB of Memory
GTX-1660 1408 GDDR5 192 bit 192 GB/s 1530 MHz 1785 MHz Standard with 6 GB of Memory
GTX-1660 Super 1408 GDDR6 192 bit 336 GB/s 1530 MHz 1785 MHz Standard with 6 GB of Memory
GTX-1660 Ti 1536 GDDR6 192 bit 288 GB/s 1500 MHz 1770 MHz Standard with 6 GB of Memory
               
NVIDIA Card
1000 Series
Number
of CUDA
Cores
Memory Type Memory
Interface
Width
Memory
Bandwidth
GB/sec
Base Clock
Speed
Boost Clock
Speed
NOTES
GTX-1010 384 GDDR5 64 bit 41.1 GB/s 1228 MHz 1468 MHz Standard with 2 GB of Memory
GTX-1030 384 GDDR5 64 bit 48 GB/s 1277 MHz 1468 MHz Standard with 2 GB of Memory
GTX-1050 2GB 640 GDDR5 128 bit 112 GB/s 1354 MHz 1455 MHz Standard with 2 GB of Memory
GTX-1050 3GB 768 GDDR5 96 bit 84 GB/s 1392 MHz 1518 MHz Standard with 3 GB of Memory
GTX-1050 Ti 768 GDDR5 128 bit 112 GB/s 1290 MHz 1392 MHz Standard with 4 GB of Memory
GTX-1060 3GB 1152 GDDR5 192 bit 192 GB/s 1506 MHz 1708 MHz Standard with 3 GB of Memory
GTX-1060 6GB 1280 GDDR5 192 bit 192 GB/s 1506 MHz 1708 MHz Standard with 6 GB of Memory
GTX-1070 1920 GDDR5 256 bit 256 GB/s 1506 MHz 1683 MHz Standard with 8 GB of Memory
GTX-1070 Ti 2432 GDDR5 256 bit 256 GB/s 1607 MHz 1683 MHz Standard with 8 GB of Memory
GTX-1080 2560 GDDR5 256 bit 320 GB/s 1607 MHz 1733 MHz Standard with 8 GB of Memory
GTX-1080 Ti 3584 GDDR5X 352 bit 484 GB/s 1480 MHz 1582 MHz Standard with 11 GB of Memory

https://www.studio1productions.com/Articles/NVidia-GPU-Chart.htm

 

NVidia Graphics Card Specification Chart - Studio 1 Productions and David Knarr

GTX 760 Ti 1344 500 watt DDR5 256 bit 192.2 GB/s 980 MHz 1033 MHz 2 GB Standard Memory Size GeForce 405 16 300 watt DDR3 64 bit 12.6 GB/s 580 MHz 1402 MHz OEM Video Card - Not Recommended GT 420 OEM 48 300 watt DDR3 128 Bit 700 MHz 1400 MHz OEM Video Card

www.studio1productions.com

 

 

'작업 > Cuda' 카테고리의 다른 글

Cuda Block Thread 설정.  (0) 2020.05.26
기존 Project Cuda Link時 오류  (1) 2020.05.06
CPU-GPU 속도 Test  (0) 2019.12.03
VS2017 - NVIDIA Cuda 연결  (0) 2019.12.03

OpenCV Version Update 과정의 의문이었던것 ^^;;;

OpenCV 1.x
C 기반으로 만들어진 API
OpenCV 2.x
C++ 기반으로 만들어진 API
OpenCV 3.x
opencv_contrib 가 추가되었음, 속도 가속화(4.x보다 빠름)
OpenCV 4.x
c++11 라이브러리가 되었음, CMake버전이 3.5.1 요구됨, 딥러닝 관련 지원 등 많은 기능의 확장

[출처] 02. OpenCV 버전 차이|작성자 지지

'작업 > OpenCV' 카테고리의 다른 글

CvvImage 추가 3.4 까지  (0) 2021.11.09
처리시간 측정  (0) 2020.07.17
OpneCV Test(4.1.2, 3.8.4, 3.4.0)  (0) 2019.11.22
OpenCV 컴파일(3.4.0, 3.4.8, 4.1.2)  (0) 2019.11.21
OpenCV 4.x.x 사용 C++ Runtime Library Debug  (0) 2019.11.20

불가피하게 Release 모드에서 Debugging을 진행해야 할 때

컴파일 옵션에서 최적화를 "사용 안 함(/Oc)"로 하면 조금이지만~~~ 도움이 된다.

 

Release 모드에서 Debugging시 최적화 OFF

 

탐색기 드라이브 숨김/표시 

컴퓨터 관리에서 "디스크 관리" 선택
드라이브 경로 표시만 하지 않음으로 Data는 그대로 있다.

 

1) CvvImage_highgui_c.h는 내용 추가 하고. "highgui_c.h"에 추가.

2) CvvImage.cpp는 src폴더로 카피 하고 링크 잡아줘라.
..\..\..\OpenCV320\sources\modules\highgui\src\CvvImage.cpp ==>경로는 여기
프로젝트 Opnecv_world\src에 추가.

CvvImage.zip
0.00MB

 

'작업 > OpenCV' 카테고리의 다른 글

OpenCV Version 정리  (0) 2022.02.24
처리시간 측정  (0) 2020.07.17
OpneCV Test(4.1.2, 3.8.4, 3.4.0)  (0) 2019.11.22
OpenCV 컴파일(3.4.0, 3.4.8, 4.1.2)  (0) 2019.11.21
OpenCV 4.x.x 사용 C++ Runtime Library Debug  (0) 2019.11.20

기본 설정이 함수 단위로 확장 축소가 가능하게 되어있다.

이것을 if문 for문과 같이 문장 블록 단위로 확장 축소를 하자.

 

간단하지만 긴코드 분석에 매우 유용 

'작업 > MFC' 카테고리의 다른 글

MFC에서 Excel 컨트롤 하기(4)  (0) 2022.09.02
Visual Studio Release모드 Debugging  (0) 2022.01.10
CFileDialog Error (File Click-Mouse R)  (1) 2021.10.14
MFC에서 Excel 컨트롤 하기(3)  (0) 2021.06.16
MFC OpneMP 간단 사용하기.  (1) 2020.03.10

 

문제점 : 프로그램내에서 공용 컨트롤 CFileDialog를 사용, 파일 선택시 마우스 오른쪽 클릭시 메모리 참조 에러 발생.

          - 마우스의 왼쪽(선택) 정상동작, 드래그 정상동작, 오른쪽 클릭시 메뉴 발생시 오류 

<발생 오류 표시>

분석 :

  - 타 프로그램에서는 발생 하지 않음.(신규 생성 MFC Window S/W에서 발생)

  - 여러가지 옵션, 설정값등 변경하여 동작 Test. (모두 동일 현상 발생)   

<호출 스택 확인시 문제 발생 위치 확인>

해결 :  해당 S/W 제거 후 동일 동작 확인 결과 오류 발생 없음.

<마우스 Event 정상동작>

 

결론 : 특정 S/W기능중 마우스 우 클릭의 메뉴 항목이 추가될경우 CFileDialog 호출에 영향을 줄 수 있다.

 - 현재는 해당 S/W를 제거 하거나 대용 S/W를 설치 하여 오류를 피하고 있다.

 - 근본적 해결방법은 아직 못찾음.(아시는분은 답글 부탁 드립니다.)

+ Recent posts