728x90
반응형

Program Language 192

error C3861: 'min': identifier not found

1>c:\program files (x86)\windows kits\8.1\include\um\gdiplustypes.h(689): error C3861: 'min': identifier not found 1>c:\program files (x86)\windows kits\8.1\include\um\gdiplustypes.h(690): error C3861: 'min': identifier not found 오랜만에 봐서 살짝 당황했네. MIN, MAX가 중복 선언돼서 문제 되는 건 기억나는데.. 이건 opencv와 Gdiplus의 min, max가 충돌(?) 혹은 선점이 잘못되어서 그런 것 같다. 를 사용하지 않았는데, 이런 에러가 떠다니, opencv.hpp 보다 먼저 인클루드 해주면 된다. #inc..

(OpenCV) LNK2019: unresolved external symbol "class cv::debug_build_guard::_InputOutputArray ....

Error Linking static libraries - OpenCV Q&A Forum Error Linking static libraries edit Hi, I built opencv from source and I'm trying to make a dll that uses some of the opencv .lib. In visual studio I set the additional directory and dependencies as follows (.lib files are in that folder): [...]\lib;%(Addi answers.opencv.org 한참을 헤매다가 debug 프로젝트에서 release 라이브러리를 가져와서 발생한 에러라는 걸 알았다. 그래서 debug 라이브러..

C4430 : missing type specifier - int assumed.

오래전에 해결해 두고 또 같은 에러로 헤매고 있었다니.. 아 놀라워라.. C++에서 순환 참조(?)하게 되면 이런 에러가 뜬다. //A.h #include "B.h" class A{ B* b; .. }; //B.h #include "A.h" class B{ A* a; // error error C4430: missing type specifier - int assumed. } 이런 식으로 말이다. 결국 전방 선언을 이용해서 해결해야 한다. //B.h class A; // change the include of A.h to forward declaration class B { A* a; }; 대신 소스파일에서 해당 헤드파일을 포함해주면 된다.

git push maser "no matching host key type found. Thier offer : ssh-rsa" error

git에서 ssh 접속 시 no matching host key type found. Thier offer : ssh-rsa 에러가 발생한다. 이는 push나 pull 같은 명령어를 쓸 때 해당된다. 이것은 git의 version이 2.3 이상이 되면 ssh에서 rsa 방식을 지원하지 않아 PubkeyAcceptedAlgorithms와 HostKeyAlgorithms 옵션을 직접 지정해줘야 한다. git 폴더 아래 cofig 파일을 열어 옵션을 추가한다. [core] repositoryformatversion = 0 filemode = false bare = false logallrefupdates = true symlinks = false ignorecase = true sshCommand = ssh ..

Program Language 2023.11.28

(python) CRM 워드파일 만들기

import mailmerge from mailmerge import MailMerge from datetime import date import pandas as pd template_1 = '고객감사메일.docx' template_2 = '고객감사메일-구매이력.docx' document_1 = MailMerge(template_1) customer_1 = { '등급': 'Gold', '전화번호': '070-XXX-XXXX', '상호': '좋은 신발', '구입총액': '500,000원', '배송한도': '50,000원', '주소': '서울시 종로구 11번지', '날짜': '{:%Y-%m-%d}'.format(date.today()), '할인': '5%', '수신자': '이순신'} document_1.m..

(python) 두 개 엑셀 파일 비교하기

import pandas as pd import xlwings as xw excel1 = '분개장_1.xlsx' excel2 = '분개장_2.xlsx' df_excel1 = pd.read_excel(excel1, 'Sheet1', na_values=['NA']) df_excel2 = pd.read_excel(excel2, 'Sheet1', na_values=['NA']) df_excel1['version'] = 'cur' df_excel2['version'] = 'new' gb_excel1 = df_excel1.groupby(['전표일자', '전표번호']) gb_excel2 = df_excel2.groupby(['전표일자', '전표번호']) df_excel1['전표번호seq'] = gb_excel1.cu..

(python) 코스피 종목 데이터 가져오기

import pandas as pd import numpy as np import FinanceDataReader as fdr import xlwings as xw import os base_dir = os.getcwd() df_code = pd.read_csv('종목코드.csv') df_code = df_code[df_code['검색'] == 1] df_code = df_code.reset_index() print(df_code) date_s = '2021-10-01' date_e = '2022-10-30' tbl_list = [] for i in range(len(df_code)) : # csv로 읽어서 그런지 숫자 첫자리의 0이 계속 삭제되어서 강제로 채웠다. # 종목코드는 6자리니까 강제로 맞췄다..

(python) pandas ix -> iloc

조금 오래된 교재를 보고 따라 하다 보니 .ix 를 사용하는 예제를 작성할 때 코드 자동 생성이 안되길래 기분이 싸~ 했는데... 계속 에러다. 그래서 검색 검색하다 보니 2020년 초에 해당 기능이 deprecated(더 이상 사용하지 않음) 되었다는 걸 알게 되었다. 그래서 .ix 대신에 .iloc을 넣으면 된다. 오래된 교재를 쓰면 역시 이런 문제가 있다. ㅎㅎ iloc은 행번호로 데이터를 가져오고, loc은 라벨 이름으로 가져 온다.

(python) bad operand type for unary +: 'str'

news_html = "" for i in range(len(df_news_final)) : news_html = news_html + "\ " + str(df_news_final.loc[i, '뉴스제목']) + "\ " + str(df_news_final.loc[i, '매체']) + " \ " + str(df_news_final.loc[i, '등록일']) + "" python 3에서 final_sentence="""Pulled """+stock+""".""" print (final_sentence) 이건 동작하지만, final_sentence="""Pulled""" +stock+""".""" print (final_sentence) 는 동작하지 않는다. 아마 operator 정의 문제인 듯하다. 아래와..

(python) 정부 입찰 공고 자료 수집

import selenium # 여기서는 약자를 붙이지 않았다. import pandas as pd from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options from webdriver_manager.chrome import ChromeDriverManager import time service = Service(ChromeDriverManager().install()) options = Options() options.add_argument("--start-maximized") driver = webdriver.Ch..

(python) 셀레리움 에러

어제 실습 예제대로 하니까 계속 에러가 발생했다. import selenium # 여기서는 약자를 붙이지 않았다. from selenium import webdriver driver = webdriver.Chrome('chromedriver.exe') 크롬드라이버를 내려받으러 갔지만, 크롬이 워낙 신상이라 최신 버전이 없었다. chromedrivermanger를 이용하면 된다고 해서 이렇게도 해봤다 import selenium # 여기서는 약자를 붙이지 않았다. from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager driver = webdriver.Chrome(ChromeDriverManager().i..

(python) selenium 이용하여 시청률 엑셀로 만들기

import selenium # 여기서는 약자를 붙이지 않았다. from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager import time options = webdriver.ChromeOptions() options.add_argument("--start-maximized") driver = webdriver.Chrome() # 우선 경로나 옵션을 넣으면 동작 하지 않음 (해결 안됨) driver.maximize_window() # 창을 최고 사이즈로 함 driver.get('http://wwww.daum.net') # daum으로 이동 #driver.find .find_element_by_id("q..

(python) pyautogui 기능들

import pyautogui as p # as뒤는 약자다. import time time.sleep(2) #2초간 인터벌을 인위적으로 부여한다. print(p.position()) #현재 x축과 y축의 좌표 print(p.size()) # 메인 모니터의 가로 세로 크기 print(p.onScreen(300, 300)) # 커서가 현재 가로, 세로 크기 안에 들어가는지 확인 # 마우스 이동 # 원하는 좌표로 이동 p.moveTo(300, 300, duration=1) # duration에서 이동시간을 초단위로 설정 # 현재 위치에서 원하는 거리만큼 이동 p.moveRel(500, 500, duration=1) # duration에서 이동시간을 초단위로 설정 # 마우스 drag and drop # 원하는 ..

[C#] warning MSB3274 : This is a higher version than the currently targeted framework

C#을 사용한 지가 얼마 되질 않아 기존 시스템을 다시 확인하는 것도 쉽지 않다. 분명 문제없이 되었는데 갑자기 되질 않는다. Visual Studio는 프레임워크 버전이 낮다고 계속 업데이트를 하란다. 그래서 4.6, 4.7, 4.8까지 해봤다. 그런데도 워닝이 사라지지 않는다. 워닝이 문제는 아니다. 워닝을 따라 잊는 수많은 error 가 문제다. 너무 간단한 문제였을까? 검색 결과가 없다. 그리고 알았다. C#은 프로젝트에 프레임워크 버전 설정하는 것이 있다는 것을.... 프로젝트 우클릭해서 속성을 누른 다음, 애플리케이션 탭에 들어가면 있다. 이로소 해결되었다. 참, 이 에러는 현재 프로젝트보다 높은 프레임워크로 제작된 레퍼런스를 사용하면 발생한다.

Program Language/C# 2023.10.13

[C++] STL map에서 erase 사용 시 주의점

for (auto itr = m_elems.begin(); itr != m_elems.end(); ++itr) { if (itr->second->locking && !ignore_locked_obj) continue; m_elems.erase(itr); } map을 사용하여 조건을 통한 삭제를 실행하려 했는데, runtime error가 발생한다. 조건을 만족하는 iterator가 나타났을 때 해당 iterator를 지워버리면 해당 iterator는 end가 되어 버렸다. erase 하면 pos 값이 날아가버려서 그런가 보다. 미리 복사해 둬야 에러를 발생시키지 않는다. for (auto itr = m_elems.begin(); itr != m_elems.end();) { if (itr->second->..

728x90
반응형