gcnew T vs gcnew T()
표준 C++에서는 new T와 new T()가 다르다고 한다. new T()는 생성자를 호출하기 전에 메모리를 0으로 초기화를 하는 반면, new T는 0으로 초기화하는 과정을 빼먹는다. 그렇다면 c++/cli에서 gcnew T와 gcnew T()를…
표준 C++에서는 new T와 new T()가 다르다고 한다. new T()는 생성자를 호출하기 전에 메모리를 0으로 초기화를 하는 반면, new T는 0으로 초기화하는 과정을 빼먹는다. 그렇다면 c++/cli에서 gcnew T와 gcnew T()를…
NUnit 2.4.6을 보면 바이너리 파일이 둘로 나뉘어 있다. nunit-console.exe 파일이 있는가 하면 nunit-console-x86.exe도 있다. 뒤에 x64 윈도우에서 x86 단위테스트를 돌리고 싶다면, 뒤에 -x86가 붙은 바이너리를 실행시키면 된다. 만약 x86 바이너리를…
로컬 컴퓨터에선 Win32 빌드를 하고 빌드 서버에서 x64 빌드를 검증하는 식으로 일하는데, 이번에 x64 빌드가 깨졌다. 뭐가 문제인가 했더니 C++/CLI 프로젝트 하나가 C4945 경고를 내뱉는 바람에, 전체 빌드가 실패하고 말았다.…
웹을 뒤져보면, CruiseControl .NET에 MSTest를 붙이는 방법이 나와 있다. 그 중에서 가장 눈에 띄는 글은 두 개이다. MSTest and CruiseControl .NET 가장 간단한 방법을 소개하는데, CruiseControl .NET의 힘을 빌려 MSTest를…
CruiseControl .NET에 MSTest를 연동하려 만 하루를 날렸다. 그 동안은 NUnit을 사용해왔으나, 별도의 플러그인을 설치하지 않고도 곧바로 Visual Studio에서 단위 테스트 디버깅을 할 수 있다는 점 때문에 MSTest로 전향하려 했다. 하지만…
Visual Studio 2008부터 쓸 수 있게 된 STL/CLR. 기대에는 못 미친다는 걸 알게 됐다. 문제가 무엇인고 하니, 바로 성능이 떨어진다는 것이다. 조금 떨어지는 것이라면 참고 쓸 수도 있겠만, 이건 정도가…
Search Dynamically for Plug-Ins은 C# 기반의 플러그인 시스템을 만들 때 마주치는 문제를 지적하고, 해결법을 간략하게 소개한다. 특히 돌려볼 수 있는 예제가 있어서 좋다. 하지만 이 예제에는 치명적인 약점이 있었다. 플러그인…
CLR 컴파일 옵션은 크게 /clr, /clr:pure, /clr:safe로 나뉜다. 이 중에서 가장 쓸모 있는 건 역시 /clr이다. 옵션 간의 차이점에 대해선 MSDN을 참고하도록 하고, /clr 컴파일을 자동화할 때의 이슈를 알아보자. C++/CLI…
우선 퀴즈 하나! 이 VB.NET 코드는 연결 풀을 사용할까? Module Module1 Sub Main() Dim cn(20) Dim rs Dim n For n = 0 To 2 cn(n) = CreateObject("ADODB.Connection") cn(n).Open("Provider=SQLNCLI; DataTypeCompatibility=80;…
첫 시도 비주얼 스튜디오 2005용 솔루션 파일을 변환하고 나서 빌드해보니 이런 오류 메시지가 떴다. fatal error C1083: Cannot open include file: 'atlsmtpconnection.h': No such file or directory 2008부터는 ATL을 함께…