본문 바로가기

반응형

Programming

(99)
c++ <-> c# Marshalling 사용법 목적 C#에서 C++로 구현된 DLL을 이용한다.(개인적인 메모이니 참고하실 분들 참고하세요) 선행사항으로는 C++ DLL이 동일 경로에 있어야함. 포스트의 DLL명은 KJK92.DLL로 정의 1. Default Marshalling (기본) 1.1. bool, short, int, float, double 형식은 각자 C++, C#의 변수를 맞춰 주면 됩니다. C++ DLL Source extern "C" __declspec(dllexport) double DLL_Sum(double a, double b) { return a + b; } C# Source [DllImport("KJK92.DLL", CallingConvention = CallingConvention.Cdecl)] extern public..
GetPrivateProfileString, GetPrivateProfileInt 오류 목적 ini파일을 얻어오는 getprivateprofilestring 사용하면서 발생한 오류 해결 포스팅 개발을 하면서 C++언어와 C#언어를 이용해 개발을 하며 ini를 통해 설정 정보를 수정할 수 있도록 개발을 하는 도중 이유를 알수 없게 ini파일을 읽어오지 못하는 경우가 발생하였다. 위 그림은 ini파일의 저장 인코딩 때문에 발생한 문제점임을 알 수 있었고 간단히 정리하자면 다음과 같다. 1. 함수 사용 시 문자 집합에 따라 차이가 있다. 문자 집합에 따라 GetPrivateProfileㅁㅁㅁA, GetPrivateProfileㅁㅁㅁW로 사용된다. Winbase.h를 보면 아래 코드블럭과 같이 정의가 되어있다. #ifdef UNICODE #define GetPrivateProfileString G..
GetPrivateProfileString, GetPrivateProfileInt 주의사항 목적 ini파일을 사용하면서 발생한 주의사항 포스팅 프로그램을 개발하다보면 ini파일을 사용하는 경우가 있었습니다. 간략하게 설명하면 ini는 [파일경로], [Section], [Key]로 구분지어 텍스트에 입력한 값을 사용하는 역할을 합니다. 해당 정보를 얻어오기 위해 GetPrivateProfileString, GetPrivateProfileInt, GetPrivateProfileSection 등과 같은 함수를 사용하여 간단하게 INI 정보를 가져올 수 있습니다. Info.txt [NETWORK] IP=127.0.0.1 PORT=50003 파일경로 : Info.txt Section : NETWORK KEY : IP Output -> 127.0.0.1 저는 윈도우 환경의 실행경로에 있는 INI파일을 사..
닷넷 3.5 오프라인 설치 방법 안녕하세요. 이번 포스팅은 닷네 3.5 오프라인 설치 방법에 대해 포스팅 하려고합니다. 이 주제의 포스팅은 정리 잘하신 분들이 많기 때문에 간략하게 설명 하고 제가 겪은 예상치 못한 문제에 대해 포스팅하겠습니다. 사실 인터넷이 된다면 걱정할 문제는 아닙니다. 1. Window 10 iso 파일을 드라이브에 탑재 시킵니다.(꼭 탑재 시키진 않고 경로를 설정 해도 되지만 탑재가 편합니다.) 2. 명령프롬프트(Power Shell)을 관리자 권한으로 실행합니다. 3. 아래 명령어를 통해 닷넷 3.5를 설치합니다. E:\sources\sxs (해당 경로에 들어가보면 "microsoft-windows-netfx3-ondemand-packge....cab" 파일이 존재합니다.)DISM /Online /Enable-..
MFC - typeid를 이용한 문자열 형변환 소스코드 안녕하세요. 아주 간단한 형변화 함수를 작성해 두려고 합니다. 간단하게 template와 typeid를 통해 사용하시면됩니다. #include "iostream" template CString GetValueToString(T& tVal) { CString str = L""; if(typeid(tVal).name() == typeid(int).name()) { str.Format(L"%d", tVal); } else if(typeid(tVal).name() == typeid(float).name() || typeid(tVal).name() == typeid(double).name()) { str.Format(L"%f", tVal); } else if(typeid(tVal).name() == typeid(..
Python 인스타그램 크롤링-크롤링관련 소스(2) 안녕하세요. 인스타그램 크롤링 프로젝트 중 크롤링과 관련된 소스에 대한 설명을 이어서 하겠습니다. 이전 글은 Python 인스타그램 크롤링-크롤링관련 소스(1)이니 참고하시기 바랍니다. URL 검색 키워드 검색 및 사용자 검색에서 얻어은 URL을 이용해서 인스타 그램 URL을 검색하는 것입니다. 아래 그림과 같이 URL을 통해 게시글에 접근하는 기능을 제공합니다. 인스타그램의 url검색은 사용자ID와 동일한 형태의 URL를 붙여서 검색합니다.(사실상 URL은 유일한 Key로 보입니다.) 해시태그 : http://www.inwww.instagram.com/URL def searchInstaUrl(self, strUrl): url = "https://www.instagram.com/{0}".format(st..
Python 인스타그램 크롤링-크롤링관련 소스(1) 안녕하세요. 인스타그램 크롤링 프로젝트 중 크롤링과 관련된 소스에 대한 설명입니다. 전체 구조 중 CraCrawlingInstagramMng.py에 대해 설명하겠습니다. 인스타그램 크롤링 클래스는 크롤링 과정에 필요한 기능을 제공합니다. 이에 필요한 로그인, 검색, 게시글 정보, 이미지 정보, 인스타그램 URL 게시글 정보 수집과 같은 메소드를 구현하였습니다. 전체적인 로직은 하단 이미지와 같습니다. 로그인 로그인은 필수 조건은 아닙니다. 하지만 게시자가 팔로워에게만 공개되는 게시글의 정보를 크롤링하기 위해서는 로그인이 필요합니다. 그리고 웹페이지 로드를 위해 로그인하기 버튼 , 로그인 버튼 클릭 후 3초간의 대기 시간을 가집니다. def LoginInstagram(self, strId, strPassw..
Python 인스타그램 크롤링 프로젝트 구조 안녕하세요. 구현한 인스타그램 크롤링 프로젝트의 구조를 간략하게 설명하려고 합니다. 총 3개의 스텝으로 나누어진 자동화 소스코드이니 참고하시기 바랍니다. 프로젝트 Git 주소 : github.com/kjky12/AnalyFamouHashtag kjky12/AnalyFamouHashtag Contribute to kjky12/AnalyFamouHashtag development by creating an account on GitHub. github.com 프로젝트의 구조는 다음과 같으며 루트 경로에 있는 4개의 소스코드가 메인 소스 코드(ContentKewordFromInstaUrlToDB.py, ContentUsrIdFromInstagUrlToDB.py, InsertKewordInstaUrlDataTo..

반응형