1>***.obj : error LNK2001: 확인할 수 없는 외부 기호 _vsnprintf_s
1>***.obj : error LNK2001: 확인할 수 없는 외부 기호 sscanf_s

 

위와 같은 에러를 만났다면, 아래와 같이 처리 해보시기 바랍니다.

 

기존 낮은버전의 VisualStudio 에서 생성한 프로젝트를 높은 버전의 VisualStudio 에서 열어서 컴파일할때,

ex) vc2010 또는 vc2015 에서 생성한 프로젝트를 vc2022 에서 열어서 빌드할경우 위와 같은 에러 메세지를 출력

 

프로젝트 속성 페이지를 열어 링커 > 입력 > 추가종속성에 

legacy_stdio_definitions.lib 를 추가

 

 

 

 

1>"zwnmsd.vcxproj" 프로젝트를 빌드했습니다.
========== 모두 다시 빌드: 1 성공, 0 실패, 0 건너뛰기 ==========
========== 다시 빌드이(가) 오전 10:52에 완료되었으며, 17.992 초이(가) 걸림 ==========

 

정상적으로 컴파일이 되는 것을 확인.

랩터의 일격 + 살쾡이의 이빨
#showtooltip  랩터의 일격
/cast !랩터의 일격
/castrandom 살쾡이의 이빨, 역습
/startattack

 

야수 있으면 치료 없으면 부르기
#showtooltip
/시전 [nopet] 야수 부르기; [pet] 동물 치료

 

징표 + 펫 공격 + 속사
/showtooltip 사냥꾼의 징표
/소환수공격
/시전 사냥꾼의 징표
/cast 속사

 

독사쐐기 + 자동사격
#showtooltip 독사 쐐기
/castsequence reset=15/target 독사 쐐기
/cast 속사
/시전 !자동 사격

 

누를때 마다 매의상, 치타의상 번갈아가면서
/연속시전 매의 상, 치타의 상

 

죽은척하기 + 얼음의덫
#showtooltips 죽은척하기
/소환수따르기
/stopcasting
/cast 죽은척하기
/cast 얼음의 덫

 

전태일때 도발의 일격, 방태일때 도발
#showtooltip
/시전 [stance:1]도발의 일격;[stance:2]도발
/공격시작 

 

방태전환 후 방패막기
/시전  [stance:1] 방어 태세
/시전 방패 막기
/공격시작

 

전태전환 후 보복
#showtooltip 보복
/시전  [stance:2] 전투 태세
/시전 보복

 

전태이면 제압 방태이면 복수
#showtooltip 
/시전 [stance:1]제압;[stance:2]복수
/공격시작

 

전태전환 후 무력화
#showtooltip 무력화
/시전  [stance:2] 전투 태세
/시전 무력화
/공격시작

 

징표찍기
/매크로중지 [noharm]
/run S=SetRaidTarget;t="mouseover"if not UnitExists(t)then t="target"end;if UnitExists(t)then if IsAltKeyDown()then S(t,0)else S(t,1)end;end

 

제압복수 쓸수 있으면 먼저 사용하고 영격
#showtooltip 영웅의 일격
/내리기
/시전 [stance:1]제압;[stance:2]복수
/시전 영웅의 일격
/startattack

 

피분과 전투외침 연속 시전
#showtooltip
/연속시전 reset=5 피의 분노, 전투의 외침

 

전태가 아닐때 전태 전환 후 돌진
#showtooltip 돌진
/시전 [nostance:1] 전투 태세
/시전 돌진
/공격시작

 

방태전환 후 방패가격
/시전  [stance:1] 방어 태세
/시전 방패 가격
/공격시작

 

활/총 사용하여 폴링 전투 시작 
#showtooltip
/매크로중지 [noharm][dead]
/시전 [stance:0/1/2/3]
/시전 [equipped:활]활 발사; [equipped:총]총 발사;[equipped:활]활 발사;투척
/script SetRaidTarget("target", 8)
/p >>[%t]<<<
/공격시작

 

차단 ( 방패착용시 방태전환 후 방패가격, 아닐경우 광폭전환 후 자루 공격)
#showtooltip 방패 가격
/cast [equipped:방패, nostance:3] 방패 가격; [noequipped:방패, nostance:3] 광폭 태세; [stance:3] 자루 공격

 

강제 봉쇄 사용
#showtooltip 봉쇄
/시전 피의 분노
/시전 광폭 태세
/시전 봉쇄
/공격시작

 

강제 소용돌이 사용
#showtooltip 소용돌이
/시전 광폭 태세
/시전 소용돌이
/공격시작

 

방태일때 방패가격, 그외는 광폭전환 후 자루공격
#showtooltip 방패 가격
/시전 [stance:2] 방패 가격; 광폭 태세
/시전 자루 공격

 

방패착용시 방태 전환 후 방패가격, 방패미착용시 광태 전환후 자루공격
#showtooltip 방패 가격
/시전 [equipped:방패] 방어 태세; 광폭 태세
/시전 [equipped:방패] 방패 가격;자루 공격
import datetime
import os

class Data:
    oid = ''
    line = ''
    oidnum = []

def snmp_oid_compare(in_name1, len1, in_name2, len2):
    name1 = in_name1
    name2 = in_name2

    # len = minimum of len1 and len2
    len_val = min(len1, len2)

    # find first non-matching OID
    for _ in range(len_val):
        if name1[0] != name2[0]:
            return -1 if name1[0] < name2[0] else 1
        name1 = name1[1:]
        name2 = name2[1:]

    # both OIDs equal up to length of shorter OID
    if len1 < len2:
        return -1
    elif len2 < len1:
        return 1
    else:
        return 0

dir_dump = "./dumps"

def load_dumpfile(lst):
    if not os.path.isdir(dir_dump):
        print("\n dir [./dumps] not found. exit.")
        exit(0)

    filelist = os.listdir(dir_dump)
    for li in filelist:
        fullpath = dir_dump + "/" + li
        f = open(fullpath, 'r')
        lines = f.readlines()
        i = 0
        for line in lines:
            i += 1
            if 'No Such Object' in line or line[0] != '.':
                print("[skip] not start dot(.) or failed oid: {}".format(line))
                continue
            tokens = line.split("=")

            data = Data()
            data.oid = tokens[0].rstrip()
            data.line = line
            data.oidnum = list(map(int, filter(None, data.oid.split("."))))
            lst.append(data)
        f.close()

def quicksort_oid(lst):
    if len(lst) <= 1:
        return lst
    else:
        pivot = lst[len(lst) // 2]
        less = [x for x in lst if snmp_oid_compare(x.oidnum, len(x.oidnum), pivot.oidnum, len(pivot.oidnum)) < 0]
        equal = [x for x in lst if snmp_oid_compare(x.oidnum, len(x.oidnum), pivot.oidnum, len(pivot.oidnum)) == 0]
        greater = [x for x in lst if snmp_oid_compare(x.oidnum, len(x.oidnum), pivot.oidnum, len(pivot.oidnum)) > 0]
        return quicksort_oid(less) + equal + quicksort_oid(greater)

def main():
    my_list = []
    t1 = datetime.datetime.now()
    load_dumpfile(my_list)
    t2 = datetime.datetime.now()
    print('\nDuration load_dumpfile: {}'.format(t2 - t1))

    sorted_list = quicksort_oid(my_list)
    t3 = datetime.datetime.now()
    print('\nDuration quicksort_oid: {}'.format(t3 - t2))

    print("\n")
    i = 0
    file_path = "output.txt"
    with open(file_path, "w") as file:
        for item in sorted_list:
            i += 1
            file.write(f"{item.line}")

    print('Total process lines : {}'.format(i))

if __name__ == "__main__":
    start_time = datetime.datetime.now()
    main()
    end_time = datetime.datetime.now()
    print('Duration: {}'.format(end_time - start_time))

'까벨로퍼 > PYTHON' 카테고리의 다른 글

[python] snmp oid 정렬 프로그램  (0) 2023.12.13
[python] oid sort  (0) 2023.03.13
[python] json 에서 특정 키가 존재하는지  (0) 2022.06.09

요구 : 디렉토리내 모든 snmp dump 파일을 읽어서 oid 별로 정렬하여 하나의 파일로 생성

import datetime
import os

class Data:
    oid = ''
    line = ''

def snmp_oid_compare(in_name1, len1, in_name2, len2):
    name1 = in_name1
    name2 = in_name2

    # len = minimum of len1 and len2
    len_val = min(len1, len2)

    # find first non-matching OID
    for _ in range(len_val):
        if name1[0] != name2[0]:
            return -1 if name1[0] < name2[0] else 1
        name1 = name1[1:]
        name2 = name2[1:]

    # both OIDs equal up to length of shorter OID
    if len1 < len2:
        return -1
    elif len2 < len1:
        return 1
    else:
        return 0

dir_dump = "./dumps"
def main():
    my_list = []

    if not os.path.isdir(dir_dump):
        print("\n dir [./dumps] not found. exit.")
        exit(0)

    filelist = os.listdir(dir_dump)
    for li in filelist:
        fullpath = dir_dump + "/" + li
        f = open(fullpath, 'r')
        lines = f.readlines()
        i = 0
        for line in lines:
            i += 1
            if 'No Such Object' in line or line[0] != '.':
                print("[skip] not start dot(.) or failed oid: {}".format(line))
                continue
            tokens = line.split("=")

            data = Data()
            data.oid = tokens[0].rstrip()
            data.line = line
            new_oid = list(map(int, filter(None, data.oid.split("."))))
            found = False
            for j, item in enumerate(my_list):
                stored_oid = list(map(int, filter(None, item.oid.split("."))))
                result = snmp_oid_compare( stored_oid, len(stored_oid), new_oid, len(new_oid))
                if result >= 0:
                    my_list.insert(j, data)
                    found = True
                    print("정렬 line:%s,idx:%s,new:%s,old:%s" % (i, j, data.oid, item.oid))
                    break
            if not found:
                my_list.append(data)
        f.close()

    print("\n")
    i = 0
    file_path = "output.txt"
    with open(file_path, "w") as file:
        for item in my_list:
            i += 1
            file.write(f"{item.line}")

    print('Total process lines : {}'.format(i))

if __name__ == "__main__":
    start_time = datetime.datetime.now()
    main()
    end_time = datetime.datetime.now()
    print('Duration: {}'.format(end_time - start_time))

 

데이터는 필요에 의해 수시로 수집 및 계산 될 수 있습니다. 사용된 조건 검색식은 링크를 따라 가시면 자세하게 확인 할 수 있습니다.
SCORE이 높은 종목부터 내림차순으로 표시됩니다.개별적으로는 차트분석 페이지에서 확인 할 수 있습니다.

조건검색 확인
종목코드를 클릭하면 '다음빅차트', 종목명을 클릭하면 'Naver 증권',  'SCORE'의 값을 클릭하면 차트페이지로 이동합니다.
투자의견 항목이 만약 B3(33000/12%) 이라면 추정기관수 3곳, 제시한 목표가는 33,000원 입니다.
%는 목표가 대비 도달하는데 올라야 할 비율을 나타냅니다.
'PER/업종' 및 'PBR/업종'은 해당업종의 평균 PER/PBR대비 자신의 PER/PBR의 위치를 백분율로 나타냈습니다.
투자에서 참고용으로 봐주시면 좋을 듯 합니다.그럼 여러분들의 성공적인 투자 기원합니다.

아래 링크를 누르시면 더 많은 정보를 볼 수 있는 제 개인 프로젝트 사이트로 연결됩니다.

vostock.kr/

안드로이드  IOS 앱도 출시가 되었습니다. 'vostock' 또는 '비오스탁' 으로 검색하시면 됩니다.

앱에서 따로 권한을 요구하는 건 없으니 주식 투자에 관심 있으신 분들은 다운 받으셔서 이용 해 보시면 감사하겠습니다.

 

Cond Search [23/10/18]


휴스틸 005010 철강 KS   0.52 4835 1.13 0.28 25.51 25.73 6
28.63
84.26
일진파워 094820 건설 KQ   -0.78 11430 15.47 1.36 9.07 3.30 5
51.24
66.49
자연과환경 043910 상업서비스와공급품 KQ   -1.69 1050 105.00 1.23 1.16 2.59 5
52.35
42.91
HMM 011200 해운사 KS 19000(26.92%) 2.18 14970 1.58 0.34 23.83 4.76 5
57.11
83.05
엠아이텍 179290 건강관리장비와용품 KQ   -1.87 7350 13.03 2.73 22.88 7.64 5
45.35
75.21
이루온 065440 IT서비스 KQ   0.16 1919 33.09 1.21 3.91 2.91 5
42.24
49.03
KEC 092220 반도체와반도체장비 KS   -2.14 1417   0.76 -2.38 -7.19 5
48.24
44.25
효성오앤비 097870 화학 KQ   -0.4 7440 49.93 0.84 1.75 3.20 5
65.56
63.8
문배철강 008420 철강 KS   3.4 3190 2.50 0.35 15.77 8.30 5
79.63
74.27
보락 002760 식품 KS   0.53 1317 37.63 1.63 4.39 1.70 5
50.39
50.53
이노인스트루먼트 215790 통신장비 KQ   -1.38 1147 81.93 0.49 0.58 -15.20 5
25.99
40.14
풍강 093380 자동차부품 KQ   -2.54 3450 5.82 0.46 8.34 6.04 5
46.49
75.08
남해화학 025860 화학 KS   0.8 7560   0.71 -1.31 1.53 4
39.66
47.2
KG모빌리언스 046440 IT서비스 KQ 6500(25.97%) 0.78 5160 9.18 0.61 7.17 6.96 4
56.02
76.18
티플랙스 081150 비철금속 KQ   3.93 3700 42.05 0.56 1.36 -1.27 4
87.15
48.95
한미글로벌 053690 건설 KS   0.21 23500 9.61 1.30 16.59 9.10 4
48.54
70.23
진흥기업 002780 건설 KS   -0.76 1175 3.31 0.70 23.83 10.39 4
45.52
63.66
LX인터내셔널 001120 무역회사와판매업체 KS 45000(69.81%) 1.34 26500 2.77 0.40 16.53 3.90 4
71.04
68.37
와이지엔터테인먼트 122870 방송과엔터테인먼트 KQ 95462(68.66%) -1.05 56600 14.20 2.33 17.84 14.42 4
61.73
75.17
에스트래픽 234300 IT서비스 KQ   -1.02 3885 3.20 1.40 58.42 2.84 4
55.48
55.9
TYM 002900 기계 KS 8000(47.33%) 1.31 5430 3.53 0.62 19.50 12.30 4
42.59
67.37
씨젠 096530 생명과학도구및서비스 KQ 25000(26.77%) -2.13 19720   0.87 -0.80 -0.38 4
70.51
55.03
지니뮤직 043610 방송과엔터테인먼트 KQ 5600(80.35%) -1.58 3105 17.44 1.11 6.64 2.25 4
41.44
51.67
신송홀딩스 006880 식품과기본식료품소매 KS   -3.13 7120   0.81 -0.02 2.16 4
60.8
43.39
디지틀조선 033130 출판 KQ   -0.67 1930 23.25 0.86 3.73 6.56 4
36.25
70.91

+ Recent posts