반응형

드뎌... 10년납 DB생명 스텝플러스 변액연금이 완납됐다.

총 120회... 30만원씩 납부했는데... 약간은 충격과 실망이었다... ㅠㅠ

 

유지 중 인 위 보험계약 중에.. 스텝플러스변액연금이 일단 완납이 되었고...

 

자세히 보니.. 뭐 딱히 뿌듯한 정보는 없고.. 그냥 납입보험료 총액은 3600만 정도라는 것 정도...

 

 

내가 낸 원금 3600만원 중 사업비가 12.14%나 된단다... 4,370,760원

그래서 수익이 있었음에도 불구하고... 적립률이 96.012%... 원금조차도 안되다니...

 

아니 펀드 자체는 평균 12.93%나 올랐는데!!!

내 적립금은 13.31%나 올랐는데!!!

사업비가 12%나 되다보니.. 원금에 못 미치는 상황.. 

 

 

예상 해지 환금금 조회를 한번 해봤더니 96.01%다.. ㅠ^ㅠ

그래서 추가납입을 한번 해보려고 한다... 몇개월 해보고... 사업비가 이제 추가로 빠지진 않을테니... 

어떤 결과가 기다릴지 참... 비교를 해봐야겠어..

반응형
Posted by Rainfly
l
반응형

C#에서 IntPtr to String 하는 방법 알아보기.

 

C++로 된 DLL들을 쓰다보면, 포인터형식들의 값을 가져오는 경우가 있는데..

이를 가져왔는데, string으로 value를 뽑아내야될 때 쓰이는 함수...

// C++ 에서 정의된 string 값을 C# String으로..
public static string GetRecogValue(IntPtr pwStr)
{
	//Marshal은 System.Runtime.InteropServices 여기에
	return Marshal.PtrToStringUni(pwStr);
}

난 이걸로 했는데,

 

사실 이외에도... 이와 비슷한 형태의 API가 꽤 있다.
저기까지만 가도, 시도해볼만한 함수들이 있으니 이것저것 해보자..


예를 들면 아래처럼...

Marshal 에 정의된 API List 중...

 

반응형
Posted by Rainfly
l
반응형

C#기준, Image RawData를 가져오기.... 그리고, C++ DLL을 사용하다보면, 

구조체 포인터형으로 결과를 얻어오거나 하는 경우... 난감할 때가 있습니다.


언어가 다르다보니, 

아무래도 api guide 문서의 함수 선언, 정의 등을 보아도 Exception 난리가 날 경우가 있는데
어떻게 다뤄야 하는지 나에 의해.. 나를 위한.. 내가 나중에 보려고 메모를 해둔다...

난 맨날 까먹으니깐...

일단 먼저... 이미지를 가지고 뭔가를 할 때, 
이미지의 RawData까지 직접 추출해서 사용해야되는 경우가 있습니다.
뭐 이미지의 Buffer 라고 애기하기도 하는데..
사실 Core쪽이 아닌 이상, 이미지 파일의 byte stream정도로 생각할 수 있는데
그게 아니고, 순수 이미지에 body 정도만 가져온다라고 생각하면 될 것 같아요...

다른 이미지 포맷은 모르겠고.. bitmap으로 해봤다..

실제 함수



using을 쓴다면, 이정도 추가하면 되지 않을까 싶음

//System.Drawing
//System.Drawing.Imaging

public static byte[] GetBitmapData(string imagePath)
{	
	using (System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(imagePath))
	{
		// 비트맵 이미지의 너비와 높이 구하기
		int width = bitmap.Width;
		int height = bitmap.Height;

		// 이미지 데이터를 저장할 바이트 배열 생성
		int bytesPerPixel = System.Drawing.Image.GetPixelFormatSize(bitmap.PixelFormat) / 8;
		int stride = width * bytesPerPixel;
		byte[] imageData = new byte[stride * height];

		// 비트맵 데이터 가져오기
		System.Drawing.Imaging.BitmapData bitmapData = 
        	bitmap.LockBits(new System.Drawing.Rectangle(0, 0, width, height), 
                 System.Drawing.Imaging.ImageLockMode.ReadOnly, bitmap.PixelFormat);
		try
		{
			IntPtr ptr = bitmapData.Scan0;
			Marshal.Copy(ptr, imageData, 0, imageData.Length);
		}
		finally
		{
			bitmap.UnlockBits(bitmapData);
		}

		return imageData;
	}
}


이렇게 하면, byte[] array 형식으로 이미지의 RawData를 뽑아오게 됩니다.



그건 그렇고, C++ DLL을 쓰다보면, 아까 말한대로 마샬링이 필요할 때가 있는데...
C++에서 아래처럼 *result 를 파라미터로 가져가라는 함수가 있다면..

EXTERN_FUNCTION(void) TestAPI(result* pResult);

C#에서 어떻게 이걸 선언해놔야 쓸 수 있는건가... 젠장..

C++ 에서는 아래처럼 정의가 되어있다고 치자.

//result라는 놈은 아래와 같고....
typedef struct result
{
	item itemInfo[5];
} result;

//item이라는 놈은 또 아래와 같고..
typedef struct item
{
    wchar_t* strxxx;
    Rect            region;
    int bExist;
    int isValid;
} item;

//Rect는 아래와 같다고 치자...
typedef struct Rect
{
    int left;
    int top;
    int right;
    int bottom;
} Rect;

C# 에서 EXTERN_FUNCTION(void) TestAPI(result* pResult); 이건 어떻게 선언해놔야 될까..

[DllImport(DLL_PATH)]
public static extern void TestAPI( ??? ); 

대충 이럴 것 같은데....

이런저런 시도 끝에... 답이 맞는진 모르겠지만,,,
우선 위에 관련있는 C++에서 사용된 저 구조체 타입들을 아래처럼 정의했다.

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct clsResult
{
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)]
    public clsItem[] itemInfo;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct clsItem
{
    public IntPtr strxxx;
    public Rect region;
    public int bExist;
    public int isValid;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct Rect
{
    public int left;
    public int top;
    public int right;
    public int bottom;
}

그리고.. 선언부는 아래처럼 했다.

[DllImport(DLL_PATH)]
public static extern void TestAPI(ref clsResult result);


드뎌 된다.... ㅠ^ㅠ 흐엉

 

아? public IntPtr strxxx; 이런거를 string으로 뽑아낼 때엔....

아래글을 참고...

 

2023.07.17 - [I.T/Programming] - [C#] Intptr to String, PtrToString, 마샬링 Use C++ parameter in C#

반응형
Posted by Rainfly
l
반응형


난 왜 연말정산을 하면 돈을 더 내는가....?

아무것도 모르는 사람이라면 이 게시글이 도움되길 바란다.

누구는 이렇게 -면 환급받는거고, -가 없으면 뱉어내야하는....끔찍한..



누가나가 소득생활을 하는 사람이라면, 
근로소득자는 연초에 아닌사람은 종합소득세신고를 5월경 하면서 연말정산을 하게 된다.

이 떄, 뱉어내야할 세금이 있는지? 환급을 받아야할 세금이 있는지 확정이 되는데

각종 공제혜택과 함께 내야 될 세금을 줄이면서, 세금을 오히려 받기위해 노력한다.

이 중 신용카드, 의료비 등 내가 지출을 많이해서 소득을 공제하는 방향이 있는데,
많이 들어봤을 소득공제라는 부분이고,

내야 될 세금을 줄어들게 해주는 공제가 바로 세액공제이다.
세액공제를 받기 위한 좋은 제도 중에 하나가 바로 연금저축이다.
뭐 더 여러가지가 있긴한데, 오늘은 연금저축에 대한 스펙만 일단 간단하게 알아볼 것 임..

세액공제 상품중에 제일 먼저 나오는 연금저축과 IRP이다.

2023년에 약간 한도변경이 되었는데, 아래는 2023년 기준이다.

 

연봉 6천 직장인이, 연간 900만원을 넣을 때, 118만8천원(900만의 13.2%)을 받는다.

 

연금저축은 위처럼... 3종류가 있다.

연금저축신탁 : 은행

연금저축펀드 : 증권사

연금저축보험 : 은행

 

개인적으로는... 연금저축펀드가 나은 것 같은데... 그건 각자에게 맡기고...

 

공제 이야기로 다시 넘어와서..

개인연금저축+IRP 합산하여 연900만원 세액공제가능하며, 연금저축의 세액공제한도는 600만원이다.

 

 

1. 가입기간 최소 5년 유지, 만 55세 이후 연금수령 가능

2. 중도해지하면.. 내가 그동안 받았던 환급받은 세액까지 다 토해내야함.

3. 다양한펀드와 ETF 투자가능하며, 배당소득세 비과세임

4. 일반거래소(삼성전자, 카카오 등) 종목은 투자불가. 고위험고수익 레버리지, 인버스 상품도 투자불가

 

시드머니말고, 여기에 연간 900까지 보존하기에는.. 사회초년생에게 연 900만원은 너무 크다..

이게 너무 공제세액을 많이 받기 위해, max 채우지말고, 적당히 넣어서 세액공제혜택을 받도록 하자.

 

계좌개설자체는 모두 비대면으로 쉽게 가능하다.

반응형
Posted by Rainfly
l
반응형

모니터가 작을 떈 몰랐는데....

32인치 사니까.. .막 멈춤...

저 셋팅으로 돌리니까 문제 없음....

 

저기서 2560해상도(native)까지 올려도 일단 안정 확인!

 

 

반응형
Posted by Rainfly
l