C#/C# Troubleshooting8 CS0649 warning CS0649: xxx 필드에는 할당되지 않으므로 항상 기본값을 사용합니다. public struct COPYDATASTRUCT { public IntPtr pData; public int dataLength; [MarshalAs(UnmanagedType.LPStr)] public string data; } 언어 버전을 변경하지 않고 메시지만 출력되지 않도록 하기 위해 해당 필드를 #pragma 구문으로 감싼다. public struct COPYDATASTRUCT { #pragma warning disable 0649 public IntPtr pData; public int dataLength; [MarshalAs(UnmanagedType.LPStr)] public string data; #.. 2023. 9. 20. System.Windows.Data Error: 17 View(xaml) 컨트롤과 binding 된 변수가 할당되지 않는 경우 발생 1. Dialog ViewMode 생성자에서 아래와 같이 컬렉션을 생성 ObservableCollection Peoples = ObservableCollection(); 2. 다이얼로그 Open 시 컬렉션에 데이터를 할당하지만 Peoples = para.GetValue("PeopleInfoList"); 3. 다이얼로그 생성시 System.Windows.Data Error: 17 에러 발생 4. 위의 1번 과정에서 컬렉션에 기본 데이터 추가 후 에러 해결됨 ObservableCollection Peoples = ObservableCollection(); for (int i = 0; i < PeopleCount; i++) { Pe.. 2022. 11. 1. CS0227 unsafe 옵션을 사용하여 컴파일 하는 경우 CS0227 오류 발생 프로젝트 - 속성 - 빌드 - "안전하지 않은 코드 허용" 체크 2022. 10. 23. error CS8630: C# 7.3의 'nullable' 값 'Enable'이(가) 잘못되었습니다. 언어 버전 '8.0' 이상을 사용하세요. 에러가 발생한 프로젝트의 xxx.csproj 파일을 열어 아래 내용을 추가한다. ... preview ... 2022. 9. 26. PInvokeStackImbalance 기존 아래와 같이 사용하던 코드에서 에러가 발생 [DllImport("CppLib.dll")] CallingConvention 추가 [DllImport("CppLib.dll", CallingConvention = CallingConvention.Cdecl)] C++ : Cdecl Delphi : StdCall C++ DLL 을 C# 에서 사용하기 C++ DLL 을 C# 에서 사용하기 1. Visual Studio 에서 솔루션 구성을 위한 빈 솔루션 생성 기타 프로젝트 형식 - Visual Studio 솔루션 - 빈 솔루션 2. C++ DLL 프로젝트 생성 추가 - 새 프로젝트 Visual C++ - Windows 데스크톱 - DLL(동적 연.. doublerabbits.tistory.com 2022. 8. 29. 컨트롤이 자신이 만들어진 스레드가 아닌 스레드에서 액세스되었습니다. C# WinForm 에서 작업(Work) 스레드에서 GUI Control 을 직접 호출하거나 변경하려는 경우 에러 발생 작업 스레드에서 GUI Control 을 호출하는 경우 아래의 순서를 따른다. 1. 호출하려는 컨트롤의 InvokeRequired 속성을 쿼리한다. 2. InvokeRequired 의 결과가 true 인 경우, delegate 를 이용하여 Invoke 를 호출한다. 3. InvokeRequired 의 결과가 false 인 경우 컨트롤을 직접 호출한다. Thread workThread; private void btnWorkThreadStart_Click(object sender, EventArgs e) { this.workThread = new Thread(new ThreadStart(t.. 2022. 8. 12. MSB3392 error MSB3392: "D:\WORK\Sample.dll" 어셈블리의 등록을 취소할 수 없습니다. 액세스가 거부되었습니다. 관리자로 응용 프로그램을 실행하고 있는지 확인하십시오. 요청한 레지스트리에 액세스할 수 없습니다. Visual Studio 를 관리자 권한으로 재실행한다. 2022. 8. 12. MSB3270 빌드 중인 프로젝트의 프로세서 아키텍처 참조의 프로세서 아키텍처 "XXX" 이(가) 일치하지 않습니다. DLL 을 컴파일 할때의 CPU 와 DLL 을 사용하는 EXE 의 CPU 셋팅이 다른 경우 발생 1. DLL 컴파일 환경을 DLL 을 사용하는 EXE 와 맞춰서 설정 후 빌드 (CPU 구성 관리자를 통해 빌드 환경을 추가하거나 변경) 2. EXE 에서 DLL 참조 부분을 새로 추가한 DLL 로 변경 2022. 8. 12. 이전 1 다음