본문 바로가기

Programming/Tips(C++,C#)143

C# WinForm의 WebBrowser컨트롤 사용 시 javascript:void(0) 동작 안하는 경우 C#에서 윈폼의 WebBrowser컨트롤을 사용하여 브라우저를 만들 때, 아래와 같은 경우 경로 탐색을 정상적으로 하지 못한다. func(){ ... window.location.replace("url2"); ... } 위와 같은 페이지를 만나면 url2로 탐색을 하고, javascript:void(0)을 다음에 탐색을 하는데, 이 코드가 동작하지 않음. 해결책은 레지스트리에 값을 써야한다. (레지스트리 건드리기 싫어하지만 답이 없다.) HKLM(or HKCU)\\Software\\Microsoft\\Internet Explorer\\Main\\FeatureControl에.. FEATURE_SCRIPTURL_MITIGATION 키 아래에 아래 값을 설정한다. $(실행파일명) (0x00000001) 값 형.. 2016. 7. 4.
VS2015에서 _filelength(FILE*->_file)이 빌드 안됨 VS2015로 기록하였지만, 정확하게는 C++에서 FILE구조체(_iobuf)의 멤버였던 _file이 제거된것 같다.FILE구조체의 멤버는 _Placeholder 이거 하나만 남아있는데. 정확하게 무엇을 하는지는 확실하지 않다.FILE구조체의 멤버들이 다 제거된것 같은데, 이에 맞추어.. 각자 필요한 것들을 만들어야 할듯..나야 왜 그랬는지는 모르지만.. 파일 길이를 재려고 아래와 같이 구문을 작성했었다. 파일크기= _filelength(FILE*개체->_file); 더이상 위 구문은 컴파일이 안되므로, 아래와 같이 변경 #include std::ifstream files(파일명, std::ifstream::ate | std::ifstream::binary);파일크기 = files.tellg(); 위와 .. 2016. 6. 7.
막상 생각하면 잘 생각나지 않는 new vs malloc 1. malloc vs new malloc은 free와 같이 사용하고, new는 delete와 같이 사용한다. 안한다고 해서 컴파일 오류가 나진 않는다. 다만 메모리가 좀 새는거밖에 더있나... ㅋㅋ (물론 진짜로 그렇게 코딩하면 '밥은 먹고 다니냐?'라는 질문을 받으실 수 있습니다.) - 공통점 : heap영역에 메모리를 생성한다. - 차이점 1) malloc/free는 객체의 생성자/소멸자를 호출해 주지 않는다. new/delete는 호출하여 준다. C++에서는 new/delete를 사용하는것이 좋다. 객체에다가 malloc/free를 해주면 Runtime Error!라는 친숙한 창을 만날 수 있다. 2) malloc/free는 라이브러리 제공 함수이고 할당하는 크기를 지정할 수 있다. new/del.. 2015. 11. 18.
변환연산자 operator returntype() 연산자 오버로딩에서 보면.. class A{ ... operator classB* (){ blabal.. } ... }; 이런 선언이 있다. 검색해보니, 변환연산자 오버로딩. 해당 클래스가 B로 형 변환이 될 때의 연산자를 오버로딩하는것이라고.. 2014. 11. 20.
자동화와 이중 인터페이스 1. 자동화 - VB나 ASP같은 스크립트기반 언어에서는 COM객체의 인터페이스에 직접 접근할 수 없다. 하지만 자동화를 통해 COM객체를 사용할 수 있다. 자동화를 통하면 마샬링을 위한 프록시/스텁 구현도 필요가 없다. 하지만, 자동화의 단점은 수행속도, 사용가능한 데이터형의 제한이 있다. 이를 위해 MS에서는 자동화와 기존의 커스텀 인터페이스를 모두 지원하는 이중 인터페이스를 제안함. 2. IDispatch인터페이스 - IUnknown에서 파생됨. GetTypeInfoCount, GetTypeInfo, GetIDsOfNames, Invoke등의 4개의 메소드가 있다. - 다음 VB의 예 dim obj As Object set obj = CreateObject(ProgID) obj.Prop = prop.. 2014. 11. 12.
Chapter 08. ATL윈도우 클래스와 WTL 8.1 ATL윈도우 클래스 참조링크 : http://devnote.tistory.com/63 8.1.1 ATL윈도우클래스 개요 - ATL에서는 윈도우 조작을 위해 윈도우 클래스를 제공한다. (최상위는 CWindow 클래스) 8.1.2 윈도우 애플리케이션 - 윈도우 프로그램을 구성하면 WinMain과 윈도우 프로시저로 구성됨. -> 프로그램의 진입은 WinMain(). 메인 윈도우를 생성하면 메시지 루프에 들어오는 메시지는 윈도우 프로시저로 전달된다. 8.1.3 CWindowImpl클래스. - CWindow에서 파생되어, 윈도우의 생성 및 클래스등록, 메시지 처리등의 기능을 제공. (CWindow만 사용하면 클래스등록과 메시지처리는 직접 구현해야 함) - CWindowImple< class T, class.. 2014. 11. 11.
728x90