'About Programing/03. Tip'에 해당되는 글 15건
- C#에서 C++의 CString 값 전달해 주기 (2) 2011.11.08
- Register variable (레지스터 변수) 2011.07.03
- RegQueryValueEx 함수 2010.05.23
- [MFC] 다른이름으로 저장하기 창 생성 2010.04.22
- 외부 프로그램 실행 방법 2010.04.21
- MFC MDI에서 Child Window를 최대화로 시작하기 2010.04.19
- Thead를 이용한 암호화 / 복호화 (4) 2010.04.11
- 일의 자리에서 반올림 , 올림 , 버림 (2) 2010.04.05
- int main(void)는 이제 그만! (1) 2010.04.05
- MFC Dialog 꽉찬 화면 2010.02.20
C#에서 C++의 CString 값 전달해 주기C#에서 C++의 CString 값 전달해 주기
Posted at 2011. 11. 8. 00:32 | Posted in About Programing/03. Tip출처 : http://blog.naver.com/just720?Redirect=Log&logNo=40137298010
C# 에서는 이렇게 쓸꺼야
일단 선언은 이렇게 하고
[DllImport("CV_capture.dll")]
public static extern void CV_RegistInit(IntPtr _IntPtr);
넘겨 줄때는 이렇게!
IntPtr _IntPtr = Marshal.StringToBSTR("abcd");
CV_RegistInit(_IntPtr);
C++에서는 BSTR로 받아서 CString으로 변환해준다.
extern "C" __declspec(dllexport) void __stdcall CV_RegistInit(BSTR _RegistName)
{
CString str;
str.Format(_T("%s"), RegistName);
}
음 잘 넘어온다! ㅋㅋ
'About Programing > 03. Tip' 카테고리의 다른 글
C#에서 C++의 CString 값 전달해 주기 (2) | 2011.11.08 |
---|---|
Register variable (레지스터 변수) (0) | 2011.07.03 |
RegQueryValueEx 함수 (0) | 2010.05.23 |
[MFC] 다른이름으로 저장하기 창 생성 (0) | 2010.04.22 |
외부 프로그램 실행 방법 (0) | 2010.04.21 |
MFC MDI에서 Child Window를 최대화로 시작하기 (0) | 2010.04.19 |
Register variable (레지스터 변수)Register variable (레지스터 변수)
Posted at 2011. 7. 3. 15:06 | Posted in About Programing/03. Tip
출처 : 클릭
레지스터 변수(Register variable)는 프로세서의 레지스터에서 처리되는 변수를 말합니다.
레지스터는 CPU 안에 있는 메모리로써, 기계어 한 두개 수준에서 직접 처리가 되므로 프로그램의 수행 속도를 향상시킬 수 있습니다.
따라서 프로그램의 수행에서 가장 영향을 주는 변수를 레지스터 변수로 선언하여 사용하면 프로그램 속도를 비약적으로 향상시킬 수 있는 경우가 있습니다.
하지만 register를 붙인다고 꼭 레지스터 변수로 선언되는 것은 아닙니다.
경우에 따라서는 남는 레지스터가 없을 수도 있으므로 여기서 말하는 레지스터는 컴파일러에게 반드시 그렇게 선언하라고 요구하는 의미보다는,
"가능하면 레지스터로 처리하라" 는 정도의 약한 의미에 불과합니다.
레지스터 변수를 선언하려면 변수를 선언할 때 앞에 register를 붙이면 됩니다.
레지스터 변수 선언은 지역 변수(Local variable)로만 선언할 수 있고 전역 변수(Global Variable)로는 선언할 수 없습니다.
register int k;
의 경우는 k라는 정수형 변수를 가능하면 레지스터 변수로 선언하라는 뜻이 되겠네요.
'About Programing > 03. Tip' 카테고리의 다른 글
C#에서 C++의 CString 값 전달해 주기 (2) | 2011.11.08 |
---|---|
Register variable (레지스터 변수) (0) | 2011.07.03 |
RegQueryValueEx 함수 (0) | 2010.05.23 |
[MFC] 다른이름으로 저장하기 창 생성 (0) | 2010.04.22 |
외부 프로그램 실행 방법 (0) | 2010.04.21 |
MFC MDI에서 Child Window를 최대화로 시작하기 (0) | 2010.04.19 |
RegQueryValueEx 함수RegQueryValueEx 함수
Posted at 2010. 5. 23. 16:29 | Posted in About Programing/03. TipLONG RegQueryValueEx( HKEY hKey, LPCWSTR lpValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData );HKEY hKey : RegOpenKey 함수로 얻은 key 값
'About Programing > 03. Tip' 카테고리의 다른 글
C#에서 C++의 CString 값 전달해 주기 (2) | 2011.11.08 |
---|---|
Register variable (레지스터 변수) (0) | 2011.07.03 |
RegQueryValueEx 함수 (0) | 2010.05.23 |
[MFC] 다른이름으로 저장하기 창 생성 (0) | 2010.04.22 |
외부 프로그램 실행 방법 (0) | 2010.04.21 |
MFC MDI에서 Child Window를 최대화로 시작하기 (0) | 2010.04.19 |
[MFC] 다른이름으로 저장하기 창 생성[MFC] 다른이름으로 저장하기 창 생성
Posted at 2010. 4. 22. 23:59 | Posted in About Programing/03. Tipvoid CUserClass::Save(void) { static char BASED_CODE szFilter[] = "한글 Files (*.hwp)|*.hwp||"; CFileDialog dlg (FALSE, "*.hwp", "*.hwp", OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter); if (dlg.DoModal () == IDOK) { } }
'About Programing > 03. Tip' 카테고리의 다른 글
Register variable (레지스터 변수) (0) | 2011.07.03 |
---|---|
RegQueryValueEx 함수 (0) | 2010.05.23 |
[MFC] 다른이름으로 저장하기 창 생성 (0) | 2010.04.22 |
외부 프로그램 실행 방법 (0) | 2010.04.21 |
MFC MDI에서 Child Window를 최대화로 시작하기 (0) | 2010.04.19 |
Thead를 이용한 암호화 / 복호화 (4) | 2010.04.11 |
외부 프로그램 실행 방법외부 프로그램 실행 방법
Posted at 2010. 4. 21. 22:50 | Posted in About Programing/03. Tip
SHELLEXECUTEINFO sei; memset(&sei, 0, sizeof(sei)); sei.cbSize = sizeof(sei); sei.fMask = SEE_MASK_NOCLOSEPROCESS | SEE_MASK_FLAG_DDEWAIT; sei.lpFile = "C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE"; sei.hwnd = NULL; sei.lpVerb = "open"; sei.nShow = SW_SHOWMINIMIZED; ShellExecuteEx(&sei);
'About Programing > 03. Tip' 카테고리의 다른 글
RegQueryValueEx 함수 (0) | 2010.05.23 |
---|---|
[MFC] 다른이름으로 저장하기 창 생성 (0) | 2010.04.22 |
외부 프로그램 실행 방법 (0) | 2010.04.21 |
MFC MDI에서 Child Window를 최대화로 시작하기 (0) | 2010.04.19 |
Thead를 이용한 암호화 / 복호화 (4) | 2010.04.11 |
일의 자리에서 반올림 , 올림 , 버림 (2) | 2010.04.05 |
MFC MDI에서 Child Window를 최대화로 시작하기MFC MDI에서 Child Window를 최대화로 시작하기
Posted at 2010. 4. 19. 02:54 | Posted in About Programing/03. Tipvirtual void ActivateFrame(int nCmdShow) { // if another window is open, use default if(GetMDIFrame()->MDIGetActive()) CMDIChildWnd::ActivateFrame(nCmdShow); else // else open maximized. CMDIChildWnd::ActivateFrame(SW_SHOWMAXIMIZED); }
'About Programing > 03. Tip' 카테고리의 다른 글
[MFC] 다른이름으로 저장하기 창 생성 (0) | 2010.04.22 |
---|---|
외부 프로그램 실행 방법 (0) | 2010.04.21 |
MFC MDI에서 Child Window를 최대화로 시작하기 (0) | 2010.04.19 |
Thead를 이용한 암호화 / 복호화 (4) | 2010.04.11 |
일의 자리에서 반올림 , 올림 , 버림 (2) | 2010.04.05 |
int main(void)는 이제 그만! (1) | 2010.04.05 |
Thead를 이용한 암호화 / 복호화Thead를 이용한 암호화 / 복호화
Posted at 2010. 4. 11. 21:17 | Posted in About Programing/03. Tip'About Programing > 03. Tip' 카테고리의 다른 글
외부 프로그램 실행 방법 (0) | 2010.04.21 |
---|---|
MFC MDI에서 Child Window를 최대화로 시작하기 (0) | 2010.04.19 |
Thead를 이용한 암호화 / 복호화 (4) | 2010.04.11 |
일의 자리에서 반올림 , 올림 , 버림 (2) | 2010.04.05 |
int main(void)는 이제 그만! (1) | 2010.04.05 |
MFC Dialog 꽉찬 화면 (0) | 2010.02.20 |
일의 자리에서 반올림 , 올림 , 버림일의 자리에서 반올림 , 올림 , 버림
Posted at 2010. 4. 5. 14:17 | Posted in About Programing/03. Tip(1) 일의자리에서 버림
버림: 123 일때 120 , 128 에서도 120 , ....123 을 10 으로 나눈 몫은 12 이고 나머지는 3
123 - 123%10 을 하면 120 이 나옵니다.
- 123 / 10 --> 12
- 123 % 10 --> 3
다른 방법으로
- 123 을 10 으로 나눈 몫이 12 .. 123 / 10
- 여기에 10 을 곱하면 120 .. 123 / 10 * 10
참고로 이 성질을 이용하면 123 % 10 은 123 - 123/10*10 과 같은 표현입니다.
(2) 일의 자리에서 반올림
반올림:123 에서 120 , 125 에서는 130 , 128 에서 130수의 일의 자리에 5 를 더하면 5 이상의 수는 십이 자리로 올라가고 5 보다 작은 수는 올라가지 않습니다.
- (123 + 5)/10 * 10 --> 120
- (125 + 5)/10 * 10 --> 130
- (128 + 5)/10 * 10 --> 130
(3) 일의 자리에서 올림
올림: 120 에서 120 , 121 에서 130 , 125 에서 1301 이상 부터 올라가야 하니 9 를 더하면 1 이상의 수는 십의 자리로 올림이 이루어집니다.
- (120 + 9)/10*10 --> 120
- (121 + 9)/10*10 --> 130
- (128 + 9)/10*10 --> 130
'About Programing > 03. Tip' 카테고리의 다른 글
MFC MDI에서 Child Window를 최대화로 시작하기 (0) | 2010.04.19 |
---|---|
Thead를 이용한 암호화 / 복호화 (4) | 2010.04.11 |
일의 자리에서 반올림 , 올림 , 버림 (2) | 2010.04.05 |
int main(void)는 이제 그만! (1) | 2010.04.05 |
MFC Dialog 꽉찬 화면 (0) | 2010.02.20 |
MFC Dialog 에서 Enter 와 ESC Key 종료 방지 (0) | 2010.02.20 |
int main(void)는 이제 그만!int main(void)는 이제 그만!
Posted at 2010. 4. 5. 12:59 | Posted in About Programing/03. Tip출처 : http://mwultong.blogspot.com/2006/12/c-argc-argv-main-function-parameter.html
각 함수에는 인수(파라미터)를 지정할 수 있습니다. 프로그램 본체인 main() 함수에도 당연히 인수를 지정할 수 있습니다. 메인 함수의 인수는, 운영체제에서 그 프로그램을 실행할 때 지정해 준 "옵션"입니다.
예를 들어 도스창(명령 프롬프트;CMD.EXE)에서
dir /?
이렇게 하면 dir 명령에 대한 도움말이 출력됩니다. 이때 "/?" 라는 문자열이 옵션이 되는 것입니다.
main(int argc, char* argv[])
에서
argc 는, 프로그램을 실행할 때 지정해 준 "명령행 옵션"의 "개수"가 저장되는 곳입니다.
argv 는, 프로그램을 실행할 때 지정해 준 "명령행 옵션의 문자열들"이 실제로 저장되는 배열입니다.
다음 예제를 보면 쉽습니다.
int argc, char* argv[] 사용법 예제; main() Option Example
#include#include // exit() int main(int argc, char* argv[]) { // 옵션 지정하지 않았을 때 에러 출력하고 종료 if (argc == 1) { fputs("에러! 옵션을 입력하지 않으셨군요...\n", stderr); exit(1); } // 옵션 개수 출력 printf("%d 개의 옵션을 입력하셨군요\n\n", argc - 1); // 옵션 배열의 요소들을 하나씩 출력 for (int i = 1; i < argc; i++) printf("argv[%d] = %s\n", i, argv[i]); return 0; }
위의 경우, argv[0]은 0.exe 가 됩니다. 즉 argv 의 첫번째 요소는 항상 "프로그램 자신의 파일명"입니다.
따라서 옵션의 정확한 개수를 구하려면 argc 에서 1을 마이너스해 주어야 합니다.
Q: 비주얼C (VC++) 에서만 되나요?
모든 C컴파일러에서 다 됩니다.envp 라는 이름의, 3번째 파라미터도 있습니다: ▶▶ C언어 VC++] 컴퓨터 환경변수 구하기/출력 방법; Get-Print Environment Variable
'About Programing > 03. Tip' 카테고리의 다른 글
Thead를 이용한 암호화 / 복호화 (4) | 2010.04.11 |
---|---|
일의 자리에서 반올림 , 올림 , 버림 (2) | 2010.04.05 |
int main(void)는 이제 그만! (1) | 2010.04.05 |
MFC Dialog 꽉찬 화면 (0) | 2010.02.20 |
MFC Dialog 에서 Enter 와 ESC Key 종료 방지 (0) | 2010.02.20 |
MFC에서 Client 중복 실행 방지하는 방법 (1) | 2010.02.19 |
MFC Dialog 꽉찬 화면MFC Dialog 꽉찬 화면
Posted at 2010. 2. 20. 14:58 | Posted in About Programing/03. TipBOOL PlayGameForm::OnInitDialog() { CDialog::OnInitDialog(); HWND m_hwnd = this->m_hWnd; LONG style = ::GetWindowLong( m_hWnd, GWL_STYLE ); style &= ~WS_CAPTION; style &= ~WS_SYSMENU; ::SetWindowLong( m_hWnd, GWL_STYLE, style ); int screenx = GetSystemMetrics( SM_CXSCREEN ); int screeny = GetSystemMetrics( SM_CYSCREEN ); // resize: SetWindowPos( NULL, -4, -4, screenx+8, screeny+4, SWP_NOZORDER ); return TRUE; }
'About Programing > 03. Tip' 카테고리의 다른 글
일의 자리에서 반올림 , 올림 , 버림 (2) | 2010.04.05 |
---|---|
int main(void)는 이제 그만! (1) | 2010.04.05 |
MFC Dialog 꽉찬 화면 (0) | 2010.02.20 |
MFC Dialog 에서 Enter 와 ESC Key 종료 방지 (0) | 2010.02.20 |
MFC에서 Client 중복 실행 방지하는 방법 (1) | 2010.02.19 |
API Hooking (0) | 2010.01.30 |
이참에 저걸로 스타크래프트 유닛을 만들어서 대량구매를 해볼까요;
역시 능력자는 다르군요ㅠ