visual studio 2015 디버거시 유효한 작업 디렉터리가 아닙니다

 

프로그램을 시작할 수 없습니다.
유효한 작업 디렉터리가 아닙니다.

 

아래와 같은 창이 나타날때

 

 

프로젝트 - 속성 - 구성속성 - 디버깅 - 작업디렉터리   ->경로변경

Default 값 : $(ProjectDir)

 

 

 

[MFC에러] error c2512 사용할 수 있는 적절한 기본 생성자가 없습니다

 

에러발생

class CSqliteDataObject
{
public:
        CSqliteDataObject(const TCHAR * strTableName);
        ~CSqliteDataObject();

}

class CSqliteDataObjectList : public CSqliteDataObject, public std::list<T*>
{
public:
        CSqliteDataObjectList() :{}
        CSqliteDataObjectList(CString strPath) { OpenSqlite3Kor(strPath); }
        virtual ~CSqliteDataObjectList() { InitFieldValue(); }


}

수정

class CSqliteDataObject
{
public:
        CSqliteDataObject(const TCHAR * strTableName);
        ~CSqliteDataObject();

}

class CSqliteDataObjectList : public CSqliteDataObject, public std::list<T*>
{
public:
        CSqliteDataObjectList() :CSqliteDataObject(_T("")) {}
        CSqliteDataObjectList(CString strPath) :CSqliteDataObject(strPath){ OpenSqlite3Kor(strPath); }
        virtual ~CSqliteDataObjectList() { InitFieldValue(); }


}

 

 

상속받은 클래스에서 기본 생성자를 생성할 수 없음

-> 생성자가 있음

-> 부모클래스가  인수를 취해서 생성

-> 부모클래스 생성자에 적절한 인수 전달

 

 

 

참조 : https://gpgstudy.com/forum/viewtopic.php?t=8061

visual studio 2015 프로젝트 실행 후 잠시 응답없음 표시 후 정상 동작 할 때

 

제어판 - Application Insights Tools for Visual Studio 2015 제거 

 

 

 

 

 

cuda 사용시

 

NVIDIA NSight Visual Studio Edition 
NVIDIA CUDA Visual Studio Integration

 

제거

visual studio 에서 Image Watch 설치 (vs 2015로 테스트)

 

도구 - 확장 및 업데이트 - Image Watch 검색 - 다운로드

 

 

 

창 열기

보기 - 다른 창 - Image Watch

 

 

코드 디버깅 중 이미지 확인  ( 돋보기 클릭)

 

미리보기로 확인

imwrite imshow 같은거 코드마다 안넣어두 됨

Visual studio 에서 해당 도구 설치 필요 (vs 2015 2017 2019 2022 )

 

Visual studio 설치 - 기타 도구 집합 - 데이터 스토리지 및 처리 - Sql Server Data Tools 설치

 

프로젝트 생성

 

파일 - 새로 만들기 - 프로젝트 - 템플릿 - 다른 언어 - SQL Server - Sql Server 데이터베이스 프로젝트  생성

 

 

프로젝트 우클릭 - 스키마 비교

 

 

대상 선택  콤보박스 -  원본선택 - 해당 DB 정보입력 및 연결

 

 

비교 버튼 클릭

 

비교 결과

 

차이점

 

없는 테이블 

 

에러 표기

C2338  The C++ Standard doesn't provide a hash for this type.

            => C++ 표준은 이 유형에 대한 해시를 제공하지 않습니다.

 

 

 

원인

  std::unordered_map<CString, CString> m_mapPLCAddr;  

  std::unordered_map 에 키가 CString 일 때 발생

 

키를 CString 로 쓰지 않거나

map 를 사용 

 

 

////////////////////////////////////////////////////////////////////////

 int 타입일때 동일 에러 발생 

//.h
public:
std::unordered_map<std::pair<int, int>, int> m_mapOX;
//.cpp
m_mapOX[std::make_pair(m_nRound, m_nCount)] = 1;

 

수정


//.h
using namespace std;
template <class T> inline void hash_combine(size_t &seed, T const &v) {
    seed ^= hash<T>()(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2);
}

struct pair_hash {
    template <class T1, class T2>
    size_t operator()(const pair<T1, T2> &p) const {
        size_t seed = 0;
        hash_combine(seed, p.first);
        hash_combine(seed, p.second);
        return seed;
    }
};

public:
std::unordered_map<std::pair<int, int>, int , pair_hash> m_mapOX;

//.cpp
m_mapOX[std::make_pair(m_nRound, m_nCount)] = 1;

 

 

 

출처 : https://stackoverflow.com/questions/32685540/why-cant-i-compile-an-unordered-map-with-a-pair-as-key

 

 

 

Microsoft Visual Studio Version Selector  으로 sln 파일 열기

 

 

 

제대로 인식하지 못할 경우에는 원하는 vs 버전으로 프로젝트 열고 sln  으로 다시 저장

 

 

기존 sln 삭제 후.vcxproj   파일을 원하는 vs버전으로 실행하고 저장 클릭시 sln 저장 할 수 있음

 

 

Visual studio 2015에서 2022로 변경하면서

 

솔루션 탐색기에 항목을 클릭 할 때마다 창이 열리는 현상 발생

 

원래는 더블클릭해야 창이 열렸음

 

도구 - 옵션 - 환경 - 탭 및 창 - 미리보기 탭
솔루션 탐색기에서 선택한 파일 미리보기 (미리 보기를 표시하지 않으려면 Alt 키를 누른 채 클릭) (X) - 체크해제

 

vs2019에서 경고 라인에는 녹색줄이 나타남

 

도구 - 옵션 - 환경 - 글꼴 및 색 - 경고  - 항목전경 에서 색상을 변경하여 감출 수 있음

 

기존 녹색줄

 

색상 변경

 

 

사용자 지정값 

R 30 G 30 B 30

스크롤 바에 색상이 보임

R 62 G 62 B 66

밑줄이 희미하게 보임

R 62 G 62 B 66 사용중

 

 

출처 : https://stackoverflow.com/questions/17998471/how-to-get-rid-of-green-warning-line-in-vs2010-editor

VS2015

도구 - 옵션 - 프로젝트 및 솔루션 - 일반 - 프로젝트 위치

 

 

 

 

 

 

 

vs2019

도구 - 옵션 - 프로젝트 및 솔루션 - 위치 - 프로젝트 위치

vs2015 기준 (2019 동일)

 

아무 프로젝트나 생성 후

 

메뉴 - 보기 - 다른창 - 속성관리자

- 하위메뉴 - Microsoft.cpp...user  에서 설정시 모든 프로젝트에 적용

 

-> 중간디렉토리 : 빌드로그 저장됨

-> 출력디렉토리 : 실행파일 생성됨

$(ProjectName) : 프로젝트 네임

$(Platform) : x64

$(Configuration) : Debug / Release

 

 

 

IPCH 설정

 

도구 - 옵션 - 텍스트편집기 - C/C++ - 고급 - 대체(fallback) 위치 - 경로설정

 

MFC SDI / MDI 프로젝트에서  Copy & Paste 가 동작이 안될때

 

리소스뷰에서 Accelerator에서 관련 키값 삭제 

 

리소스 뷰 클릭

 

Accelerator 클릭
관련 키값 삭제

 

출처 : https://blog.daum.net/baramjin/11016239

Thread 내부에서 사용된 CString 이었다.

Thread 사용 중 TerminateThread 와 같이 강제 종료 될때,

CString 에서 사용하는 메모리 영역이 제대로 해제 되지 않아 발생할 수 있다. 

 

결론은 thread가 종료 되기 전 CString 객체에서 Empty() 를 호출하여 문자열을 비워주면 나를 괴롭혔던 memory leak이 사라지는 것을 확인할 수 있다.

 

Thread 사용 중 원인을 알 수 없는 memory leak 발생 시 CString을 확인해보자.

 

출처 : https://cherrycloud.tistory.com/41

Assert  

debug_heap.cpp  

Line: 980 

Expression: __arct_first_block == header

 

 

조치:  프로젝트 - 속성 - c/c++ - 코드생성 - 런타임 라이브러리 에서   MT -> MD 로 변경

        프로젝트 - 속성 - 일반 - MFC사용 - 공유 DLL에서 MFC 사용 선택

 

 

 

 

 

 

 

 

VS 2019 설치 후 우클릭시 한자 보이는 현상 제거

 

레지스트리 편집기 실행 - 찾기 

'용' 입력 후 한자  用  (쓸 용)

 

검색 결과

내용 수정 후 결과

 

 

//수정 - 내용추가

위처럼 변경해도 어느 순간 원래대로 되돌아옴

크게 사용하지 않는 경우 삭제

 

[레지스트리 편집기 열기]

윈도우 + r  - regedit  

해당부분 제거

HKEY_CLASSES_ROOT\Directory\Background\shell\AnyCode
HKEY_CLASSES_ROOT\Directory\shell\AnyCode

 

출처 : https://developercommunity.visualstudio.com/t/disable-context-menu-for-open-in-visual-studio/26397

+ Recent posts