블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2803)
Unity3D (859)
Programming (479)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (234)
협업 (61)
3DS Max (3)
Game (12)
Utility (140)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
Android (16)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday

텍스트박스에 한글만 입력하기

private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
    if((Char.IsPunctuation(e.KeyChar) || Char.IsDigit(e.KeyChar) || Char.IsLetter(e.KeyChar) || Char.IsSymbol(e.KeyChar)) && e.KeyChar != 8)
    {
        e.Handled = true;
    }
}

 

텍스트박스에 영어만 입력하기

private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
    if(!(Char.IsLetter(e.KeyChar)) && e.KeyChar != 8)
    {
        e.Handled = true;
    }
}

 

private void textBox1_Leave(object sender, System.EventArgs e)
{
    Regex emailregex = new Regex(@"[a-zA-Z]");
    Boolean ismatch = emailregex.IsMatch(textBox1.Text);
    if (!ismatch)
    {
        MessageBox.Show("영문자만 입력해 주세요.");
    }
}

 

텍스트박스에 숫자만 입력하기

private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
    if(!(Char.IsDigit(e.KeyChar)) && e.KeyChar != 8)
    {
        e.Handled = true;
    }
}
private void textBox1_Leave(object sender, System.EventArgs e)
{
    Regex emailregex = new Regex(@"[0-9]");
    Boolean ismatch = emailregex.IsMatch(textBox1.Text);
    if (!ismatch)
    {
        MessageBox.Show("숫자만 입력해 주세요.");
    }
}

 

음.. 이렇게 두번에 걸쳐 체크한 이유는 한글은 ProcessKey이기 때문에 KeyPress 이벤트가 일어나지 않기 때문입니다. 그렇기 때문에 텍스트박스에서 포커스가 벗어날때 정규식을 이용해 한번더 체크해줘야 합니다. 키값 8번은 백스페이스 값입니다.

 

자료출처 : C#개발자싸이트

http://www.sky.ph/

 

 

반응형
Posted by blueasa
, |

C# 레퍼런스 모음.

C/C++ 을 하다가 C# 으로 추가 개발을 하려는 사람에게 꼭 필요한 것들을 모아봤음.
직접 해보면서 삽질한 내용임.

C# eBook
http://www.bestsoftware4download.com/software/t-free-c-school-ebook-download-llijghlw.html
http://www.pnasoft.com/archive/2008/01/11/pro-csharp-2008-and-the-net-3-5-platform-4th-edition.aspx

C++ / CLI, Managed C++ eBook
http://int6.net/ebook/Expert.Cpp.Cli.NET.pdf

C# memcpy (링크를 까먹어서 -_- 코드로 대체)


// copied from group.google.com 
public object raw_deserialize_ex(byte[] rawdatas, Type anytype) 
{ 
 int rawsize = Marshal.SizeOf(anytype); 
 if (rawsize > rawdatas.Length) 
   return null; 
 GCHandle handle = GCHandle.Alloc(rawdatas, GCHandleType.Pinned); 
 IntPtr buffer = handle.AddrOfPinnedObject(); 
 object retobj = Marshal.PtrToStructure(buffer, anytype); 
 handle.Free(); 
 return retobj; 
} 
 
// copied from group.google.com 
public byte[] raw_serialize_ex(object anything) 
{ 
 int rawsize = Marshal.SizeOf(anything); 
 byte[] rawdatas = new byte[rawsize]; 
 GCHandle handle = GCHandle.Alloc(rawdatas, GCHandleType.Pinned); 
 IntPtr buffer = handle.AddrOfPinnedObject(); 
 Marshal.StructureToPtr(anything, buffer, false); 
 handle.Free(); 
 return rawdatas; 
}


Block Copy
http://msdn.microsoft.com/en-us/library/system.buffer.blockcopy.aspx

Byte[] to String
System.Text.Encoding.UTF8.GetString(...);

String to Byte[]
ASCIIEncoding.UTF8.GetBytes(...);

[Managed C++] System::String^ <-> std::string
http://www.codeguru.com/forum/showthread.php?p=1722705#post1722705

UI Invoke (다른 Thread 에서 ui 를 업데이트 하려면 invoke 를 거쳐가야함.)
http://msdn.microsoft.com/en-us/library/system.windows.forms.form.invoke.aspx
i.e.) this.Invoke(new _set_btn_enable_delegate(_set_btn_enable));

Property Grid
http://msdn.microsoft.com/en-us/library/aa302326.aspx

XML Serializer
http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx

CRC32, MD5, SHA1
http://www.vbaccelerator.com/home/net/code/Libraries/CRC32/article.asp
http://msdn.microsoft.com/en-us/library/system.security.cryptography.sha1cryptoserviceprovider.aspx

Native C++ <-> Unmanaged C++ <-> C#
http://sj21.wo.to/tt/483
http://sj21.wo.to/tt/484
http://blogs.msdn.com/junfeng/archive/2006/05/20/599434.aspx

Application 정보는 System.Application
Environment 정보는 System.Environment

다른 Application 실행시키려면
http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.aspx


일단 이정도.

위의 내용만 잘 숙지해도, 기본적인 개발은 할 수 있음.


출처 : http://eeodl.blogspot.com/2008/11/c-managed-c.html

반응형

'Programming > C++/CLI' 카테고리의 다른 글

C++/CLI Type  (2) 2010.09.13
Win32 API TYPE <-> C# TYPE  (0) 2010.07.20
C++/CLI 빌드 시, LNK2019 에러 #3  (0) 2010.06.07
C++/CLI 빌드 시, LNK2019 에러 #2  (0) 2010.06.07
C++/CLI 빌드 시, LNK2019 에러 #1  (0) 2010.06.07
Posted by blueasa
, |

오늘 갑자스럽게  아는 동생이 물어본것이 있었다..

상속 관계에서 클래스 객체 선언방식의 차이점이 었다.

즉,

  A * pA = new B;
  B * pB = new B;

이 두개의 차이점

 

쉽게 이야기해서 접근시작점의 차이인데.. 초반에 버벅거리다니...

아직 내공 부족인가 보다.

 

아무튼 기억을 더듬어서 대답해주고 확인겸 프로그래밍해보고

 

다시 잊어버리지 말라구 기록에 남긴다.

 

위의 차이점은 간단히 말해

  A * pA = new B;

부모 클래스의 virtual 함수에 의한 오버라이딩을 위해 쓴다고 말하면 될것 같다.

예를 들어 A클래스에 virtual void A1()이라는 함수가 있고 B클래스에 void A1()이라는 함수가 있다면

pA->A1()는  당연히 B 클래스의 A1()이 호출된다.

만약 B 클래스의 A1()이 없다면 A 클래스의 A1() 호출된다.

그런데 B클래스에 A1()있고 A 클래스에도 A1()있는데 A클래스의 virtual 키워드가 붙지 않았다면

A클래스의 A1()이 B 클래스를 무시하고 실행되어 버린다. 왜? A부모우선이니.

그런데   B * pB = new B; 에서는 B클래스의 A1()이 실행된다.

말그대로 B 클래스 우선이 된다. 

 

아래는 대략적인 예제 남긴다.

내공를 쌓도록 공부하면 잊지 말도록 하자 정말로....

 

#include <iostream>
#include <stdio.h>
using namespace std;

class A
{
public:
 virtual void A1(){cout<<"A::A1"<<endl;}
       void A2(){cout<<"A::A2"<<endl;}
};
class B:public A
{
public:
 virtual void A1(){cout<<"B::A1"<<endl;}
    void A2(){cout<<"B::A2"<<endl;}
    void A3(){cout<<"B::A3"<<endl;}
};

void main()
{
    A * pA = new B;
    B * pB = new B;

    pA->A1();  //B::A1()
    pB->A1();  //B::A1();

    pA->A2();  //A::A2();
    pB->A2();  //B::A2();

   

    //다운 캐스팅;
    //pA->A3(); //에러
    pB->A3(); ////B::A3(); 에러아님 자식인 B클래스부터 접근하기 때문에


   //업캐스팅
   cout<<"업캐스팅"<<endl;
   ( (A*)pB)->A2(); //A::A2();


   //다운캐스팅
   //pA->A3(); //에러었지만
   ((B*)pA)->A3();  ///B::A3();

 delete pA;
 delete pB;
}

반응형

'Programming > C/C++' 카테고리의 다른 글

TCHAR을쓰면 바뀌는 함수들  (0) 2010.07.27
TCHAR printf  (0) 2010.07.12
__super C++ 키워드  (0) 2010.06.03
[펌] assert 문 사용하기  (0) 2010.05.13
[펌] try-catch 예외처리 비용?  (0) 2010.05.13
Posted by blueasa
, |

Lua 문법

Programming/Lua / 2010. 6. 18. 21:07
반응형

'Programming > Lua' 카테고리의 다른 글

[Addin] Visual Studio - Lua Language Support  (0) 2011.05.22
Posted by blueasa
, |
반응형
Posted by blueasa
, |

C#에서 현재 경로를 알아내는 방법은 여러가지가 있다.

1. System.Environment.CurrentDirectory

가장 쉽게 현재 실행 경로를 알아낼 수 있는 방법이다. 하지만 이 방법은 Register에 등록된 프로그램으로 실행되면 다른 값을 출력한다. 이때는 3번 Application.StartupPath를 이용해야 한다.

* 루트일 경우에는 '\' 반환, 그 외의 경우에는 폴더명까지만 반환한다.
  • C:\
  • C:\TestFolder\MyApp

2. System.IO.Directory.GetCurrentDirectory()


1번과 동일하다.


3. Application.StartupPath

위의 Register에 등록되었을 때도 정상적으로 자신의 시작 경로를 반환한다. 하지만 이는 Window Forms를 사용할 때만 Application 클래스를 사용할 수 있기 때문에 Console 기반 혹은, 클래스 라이브러리 기반에서는 사용이 불가능하다.
Tip. Application.ExecutablePath
현재 실행된 어플리케이션의 실행 파일의 위치이다. C:\Test\App.exe 와 같이 출력된다. 이 정보는 현재 경로가 아니기 때문에 변경되지 않는다.


반응형
Posted by blueasa
, |

1>NiInput.lib(NiDI8InputSystem.obj) : error LNK2019: __imp__CoUninitialize@0 외부 기호(참조 위치: "protected: static int __cdecl NiDI8InputSystem::IsXInputDevice(struct _GUID const *)" (?IsXInputDevice@NiDI8InputSystem@@KAHPBU_GUID@@@Z) 함수)에서 확인하지 못했습니다.
1>NiInput.lib(NiDI8InputSystem.obj) : error LNK2019: __imp__CoSetProxyBlanket@32 외부 기호(참조 위치: "protected: static int __cdecl NiDI8InputSystem::IsXInputDevice(struct _GUID const *)" (?IsXInputDevice@NiDI8InputSystem@@KAHPBU_GUID@@@Z) 함수)에서 확인하지 못했습니다.
1>NiInput.lib(NiDI8InputSystem.obj) : error LNK2019: __imp__CoCreateInstance@20 외부 기호(참조 위치: "protected: static int __cdecl NiDI8InputSystem::IsXInputDevice(struct _GUID const *)" (?IsXInputDevice@NiDI8InputSystem@@KAHPBU_GUID@@@Z) 함수)에서 확인하지 못했습니다.
1>NiInput.lib(NiDI8InputSystem.obj) : error LNK2019: __imp__CoInitialize@4 외부 기호(참조 위치: "protected: static int __cdecl NiDI8InputSystem::IsXInputDevice(struct _GUID const *)" (?IsXInputDevice@NiDI8InputSystem@@KAHPBU_GUID@@@Z) 함수)에서 확인하지 못했습니다.
1>D:\Learn\ActionTool\Debug\Managed.dll : fatal error LNK1120: 4개의 확인할 수 없는 외부 참조입니다.



해결방법 : #pragma comment(lib, "ole32.lib")
반응형

'Programming > C++/CLI' 카테고리의 다른 글

Win32 API TYPE <-> C# TYPE  (0) 2010.07.20
C#, Managed C++ 참고 자료  (0) 2010.06.25
C++/CLI 빌드 시, LNK2019 에러 #2  (0) 2010.06.07
C++/CLI 빌드 시, LNK2019 에러 #1  (0) 2010.06.07
C# + CLI + C++ 혼합 디버깅  (0) 2010.06.01
Posted by blueasa
, |

1>NiInput.lib(NiDI8InputSystem.obj) : error LNK2019: __imp__SysFreeString@4 외부 기호(참조 위치: "protected: static int __cdecl NiDI8InputSystem::IsXInputDevice(struct _GUID const *)" (?IsXInputDevice@NiDI8InputSystem@@KAHPBU_GUID@@@Z) 함수)에서 확인하지 못했습니다.
1>NiInput.lib(NiDI8InputSystem.obj) : error LNK2019: __imp__SysAllocString@4 외부 기호(참조 위치: "protected: static int __cdecl NiDI8InputSystem::IsXInputDevice(struct _GUID const *)" (?IsXInputDevice@NiDI8InputSystem@@KAHPBU_GUID@@@Z) 함수)에서 확인하지 못했습니다.
1>D:\Learn\ActionTool\Debug\Managed.dll : fatal error LNK1120: 2개의 확인할 수 없는 외부 참조입니다.



해결 방법 : #pragma comment(lib, "oleaut32.lib")
반응형
Posted by blueasa
, |

1>First.lib(SAEApp.obj) : error LNK2019: __imp__GetClientRect@8 외부 기호(참조 위치: "public: bool __thiscall SAEApp::Initialize(void)" (?Initialize@SAEApp@@QAE_NXZ) 함수)에서 확인하지 못했습니다.
1>NiD3D10Renderer.lib(NiD3D10Renderer.obj) : error LNK2001: __imp__GetClientRect@8 외부 기호를 확인할 수 없습니다.
1>NiSystem.lib(NiDebug_Win32.obj) : error LNK2019: __imp__MessageBoxA@16 외부 기호(참조 위치: "public: static bool __cdecl NiAssertFail::DefaultAssertFail(char const *,char const *,char const *,int)" (?DefaultAssertFail@NiAssertFail@@SA_NPBD00H@Z) 함수)에서 확인하지 못했습니다.
1>NiSystem.lib(NiMessageBox.obj) : error LNK2001: __imp__MessageBoxA@16 외부 기호를 확인할 수 없습니다.
1>SecretBaseLib.lib(Assert.obj) : error LNK2001: __imp__MessageBoxA@16 외부 기호를 확인할 수 없습니다.
1>First.lib(Window.obj) : error LNK2019: __imp__WaitMessage@0 외부 기호(참조 위치: "public: int __thiscall CWindow::Run(struct HINSTANCE__ *,int)" (?Run@CWindow@@QAEHPAUHINSTANCE__@@H@Z) 함수)에서 확인하지 못했습니다.
1>First.lib(Window.obj) : error LNK2019: __imp__DispatchMessageA@4 외부 기호(참조 위치: "public: int __thiscall CWindow::Run(struct HINSTANCE__ *,int)" (?Run@CWindow@@QAEHPAUHINSTANCE__@@H@Z) 함수)에서 확인하지 못했습니다.
1>First.lib(Window.obj) : error LNK2019: __imp__TranslateMessage@4 외부 기호(참조 위치: "public: int __thiscall CWindow::Run(struct HINSTANCE__ *,int)" (?Run@CWindow@@QAEHPAUHINSTANCE__@@H@Z) 함수)에서 확인하지 못했습니다.
1>First.lib(Window.obj) : error LNK2019: __imp__GetMessageA@16 외부 기호(참조 위치: "public: int __thiscall CWindow::Run(struct HINSTANCE__ *,int)" (?Run@CWindow@@QAEHPAUHINSTANCE__@@H@Z) 함수)에서 확인하지 못했습니다.
1>First.lib(Window.obj) : error LNK2019: __imp__PeekMessageA@20 외부 기호(참조 위치: "public: int __thiscall CWindow::Run(struct HINSTANCE__ *,int)" (?Run@CWindow@@QAEHPAUHINSTANCE__@@H@Z) 함수)에서 확인하지 못했습니다.
1>SecretBaseLib.lib(Assert.obj) : error LNK2001: __imp__PeekMessageA@20 외부 기호를 확인할 수 없습니다.
1>First.lib(Window.obj) : error LNK2019: __imp__ShowWindow@8 외부 기호(참조 위치: "public: int __thiscall CWindow::Run(struct HINSTANCE__ *,int)" (?Run@CWindow@@QAEHPAUHINSTANCE__@@H@Z) 함수)에서 확인하지 못했습니다.
1>First.lib(Window.obj) : error LNK2019: __imp__SetWindowPos@28 외부 기호(참조 위치: "private: void __thiscall CWindow::SetAdjustWindow(void)" (?SetAdjustWindow@CWindow@@AAEXXZ) 함수)에서 확인하지 못했습니다.
1>SecretCoreLib.lib(VisualManager.obj) : error LNK2001: __imp__SetWindowPos@28 외부 기호를 확인할 수 없습니다.
1>First.lib(Window.obj) : error LNK2019: __imp__GetWindowRect@8 외부 기호(참조 위치: "private: void __thiscall CWindow::SetAdjustWindow(void)" (?SetAdjustWindow@CWindow@@AAEXXZ) 함수)에서 확인하지 못했습니다.
1>First.lib(Window.obj) : error LNK2019: __imp__GetSystemMetrics@4 외부 기호(참조 위치: "private: void __thiscall CWindow::SetAdjustWindow(void)" (?SetAdjustWindow@CWindow@@AAEXXZ) 함수)에서 확인하지 못했습니다.
1>First.lib(Window.obj) : error LNK2019: __imp__AdjustWindowRectEx@16 외부 기호(참조 위치: "private: void __thiscall CWindow::SetAdjustWindow(void)" (?SetAdjustWindow@CWindow@@AAEXXZ) 함수)에서 확인하지 못했습니다.
1>First.lib(Window.obj) : error LNK2019: __imp__GetMenu@4 외부 기호(참조 위치: "private: void __thiscall CWindow::SetAdjustWindow(void)" (?SetAdjustWindow@CWindow@@AAEXXZ) 함수)에서 확인하지 못했습니다.
1>First.lib(Window.obj) : error LNK2019: __imp__GetWindowLongA@8 외부 기호(참조 위치: "private: void __thiscall CWindow::SetAdjustWindow(void)" (?SetAdjustWindow@CWindow@@AAEXXZ) 함수)에서 확인하지 못했습니다.
1>SecretBaseLib.lib(Assert.obj) : error LNK2019: __imp__PostQuitMessage@4 외부 기호(참조 위치: "bool __cdecl SecretBase::SC_Assert(char const *,char const *,unsigned int)" (?SC_Assert@SecretBase@@YA_NPBD0I@Z) 함수)에서 확인하지 못했습니다.
1>SecretCoreLib.lib(VisualManager.obj) : error LNK2019: __imp__AdjustWindowRect@12 외부 기호(참조 위치: "protected: void __thiscall SCore::Visual::Implement::VisualManager::RecreateRenderer(bool,unsigned int,unsigned int)" (?RecreateRenderer@VisualManager@Implement@Visual@SCore@@IAEX_NII@Z) 함수)에서 확인하지 못했습니다.
1>SecretInterface.lib(CUIInterfaceCore.obj) : error LNK2019: __imp__SendMessageA@16 외부 기호(참조 위치: "public: void __thiscall SecretInterface::CUIInterfaceCore::QuitGame(void)" (?QuitGame@CUIInterfaceCore@SecretInterface@@QAEXXZ) 함수)에서 확인하지 못했습니다.
1>SecretInterface.lib(CUIEditString.obj) : error LNK2001: __imp__SendMessageA@16 외부 기호를 확인할 수 없습니다.
1>SecretInterface.lib(CUICursor.obj) : error LNK2019: __imp__ClientToScreen@8 외부 기호(참조 위치: "private: bool __thiscall SecretInterface::CUICursor::CheckOutScreenMousePosition(void)" (?CheckOutScreenMousePosition@CUICursor@SecretInterface@@AAE_NXZ) 함수)에서 확인하지 못했습니다.
1>SecretInterface.lib(CUICursor.obj) : error LNK2019: __imp__GetCursorPos@4 외부 기호(참조 위치: "private: bool __thiscall SecretInterface::CUICursor::CheckOutScreenMousePosition(void)" (?CheckOutScreenMousePosition@CUICursor@SecretInterface@@AAE_NXZ) 함수)에서 확인하지 못했습니다.
1>SecretInterface.lib(CUICursor.obj) : error LNK2019: __imp__GetFocus@0 외부 기호(참조 위치: "private: bool __thiscall SecretInterface::CUICursor::CheckOutScreenMousePosition(void)" (?CheckOutScreenMousePosition@CUICursor@SecretInterface@@AAE_NXZ) 함수)에서 확인하지 못했습니다.
1>SecretInterface.lib(CUICursor.obj) : error LNK2019: __imp__ClipCursor@4 외부 기호(참조 위치: "public: void __thiscall SecretInterface::CUICursor::SetWindowFocus(void)" (?SetWindowFocus@CUICursor@SecretInterface@@QAEXXZ) 함수)에서 확인하지 못했습니다.
1>SecretInterface.lib(CUICursor.obj) : error LNK2019: __imp__ScreenToClient@8 외부 기호(참조 위치: "public: void __thiscall SecretInterface::CUICursor::SetWindowFocus(void)" (?SetWindowFocus@CUICursor@SecretInterface@@QAEXXZ) 함수)에서 확인하지 못했습니다.
1>SecretInterface.lib(CUICursor.obj) : error LNK2019: __imp__SetCursorPos@8 외부 기호(참조 위치: "private: void __thiscall SecretInterface::CUICursor::OnMoveFrame(void)" (?OnMoveFrame@CUICursor@SecretInterface@@AAEXXZ) 함수)에서 확인하지 못했습니다.
1>SecretInterface.lib(CUIDefine.obj) : error LNK2019: __imp__ShowCursor@4 외부 기호(참조 위치: "public: static void __cdecl SecretInterface::CUIDefine::SetWinSysCursor(bool)" (?SetWinSysCursor@CUIDefine@SecretInterface@@SAX_N@Z) 함수)에서 확인하지 못했습니다.
1>SecretInterface.lib(CUIEditString.obj) : error LNK2019: __imp__CloseClipboard@0 외부 기호(참조 위치: "public: void __thiscall SecretInterface::CUIEditString::CopyDeleteClipboard(void)" (?CopyDeleteClipboard@CUIEditString@SecretInterface@@QAEXXZ) 함수)에서 확인하지 못했습니다.
1>SecretInterface.lib(CUIEditString.obj) : error LNK2019: __imp__SetClipboardData@8 외부 기호(참조 위치: "public: void __thiscall SecretInterface::CUIEditString::CopyDeleteClipboard(void)" (?CopyDeleteClipboard@CUIEditString@SecretInterface@@QAEXXZ) 함수)에서 확인하지 못했습니다.
1>SecretInterface.lib(CUIEditString.obj) : error LNK2019: __imp__EmptyClipboard@0 외부 기호(참조 위치: "public: void __thiscall SecretInterface::CUIEditString::CopyDeleteClipboard(void)" (?CopyDeleteClipboard@CUIEditString@SecretInterface@@QAEXXZ) 함수)에서 확인하지 못했습니다.
1>SecretInterface.lib(CUIEditString.obj) : error LNK2019: __imp__OpenClipboard@4 외부 기호(참조 위치: "public: void __thiscall SecretInterface::CUIEditString::CopyDeleteClipboard(void)" (?CopyDeleteClipboard@CUIEditString@SecretInterface@@QAEXXZ) 함수)에서 확인하지 못했습니다.
1>SecretInterface.lib(CUIEditString.obj) : error LNK2019: __imp__GetClipboardData@4 외부 기호(참조 위치: "public: void __thiscall SecretInterface::CUIEditString::PasteClipboard(void)" (?PasteClipboard@CUIEditString@SecretInterface@@QAEXXZ) 함수)에서 확인하지 못했습니다.
1>SecretInterface.lib(CUIEditString.obj) : error LNK2019: __imp__IsClipboardFormatAvailable@4 외부 기호(참조 위치: "public: void __thiscall SecretInterface::CUIEditString::PasteClipboard(void)" (?PasteClipboard@CUIEditString@SecretInterface@@QAEXXZ) 함수)에서 확인하지 못했습니다.
1>SecretBaseLib.lib(PathManager.obj) : error LNK2019: __imp__wsprintfA 외부 기호(참조 위치: "class SecretBase::PathManager::Path const & __cdecl SecretBase::PathManager::GetModifyPath(char const *)" (?GetModifyPath@PathManager@SecretBase@@YAABVPath@12@PBD@Z) 함수)에서 확인하지 못했습니다.
1>D:\Learn\ActionTool\Debug\Managed.dll : fatal error LNK1120: 31개의 확인할 수 없는 외부 참조입니다.


주요하게 볼 부분은 밑줄 쳐진 부분의 골뱅이 앞부분..(예:__imp__MessageBoxA@16 외부 기호를 확인할 수 없습니다. 의 MessageBoxA)을 인터넷 검색을 열심히 하다보면 추가해야 될 lib 파일이 가끔 나온다.

해결 방법 : #pragma comment(lib, "user32.lib")
반응형
Posted by blueasa
, |

현재 윈도우 해상도 얻기
Size Bounds = Screen.PrimaryScreen.Bounds.Size;
MessageBox.Show(Bounds.ToString());
(결과) Width=2560, Height=1600

작업 표시줄 제외한 윈도우 영역 크기 얻기
Size WorkingArea = Screen.PrimaryScreen.WorkingArea.Size;
MessageBox.Show(WorkingArea.ToString());
(결과) Width=2560, Height=1570

※ 결과 : 2560*1600 해상도에서 테스트 한 결과
반응형
Posted by blueasa
, |