GetVersion 사용시 한글 버전이 제대로 나오는게 맞나요?

image
자동업데이트 하기 이전, 이후 GetVersion에서 나오는 값이
위의 그림과 동일하게 201326592로 나옵니다.

OCX 버전을 체크해서 특정버전보다 낮으면 업데이트 하라고 권고 할 예정인데,
GetVersion을 사용할 수가 없네요.
다른 방법이나, 해결책 좀 알려주세요.

이 범주에서는 한글 컨트롤에 대한 다른 사용자의 기술 지원을 제공받을 수 있습니다.

  1. 한글 컨트롤의 API 사용/연동은 개발 가이드를 참조하세요.
  2. 일반 문의는 한글과컴퓨터 웹사이트의 고객 지원을 이용하세요.
  3. 개인정보가 포함되지 않도록 유의하세요. 게시글 또는 댓글에 개인정보가 포함된 내용이 있을 경우 게시물이 숨김처리 될 수 있습니다.

안녕하세요!

GetVersion에서 반환 되는 값이 정상적인 것 같지 않다 라고 말씀해주셨는데요.

현재 GetVersion으로 하시려는 기능이 OCX의 버전이 달라짐에 따라 API사용법이 다르거나, 정상 동작하지 않음을 확인하려고 하시는 게 맞을까요?

그렇다면 지금 생각하시는 버전의 범위가 어느 정도 일까요? 2022를 사용하고 계신 듯 한데 그 이전 버전이랑 차이가 나는지… 아니면 매 패치 때마다 버전의 차이를 확인하려고 하시는지 알 수 있을까요?

지금 사용중인 버전은 2022를 사용하고 있습니다.
GetVersion을 사용하려고 하는 이유는 OCX기능 중에 업데이트 (한컴 자동업데이트) 전,과 후의 동작이 틀린
API가 존재해서, GetVersion을 사용해서 OCX 버전이 틀리다면 업데이트 이후에 “해당 API를 사용하세요” 라고
사용자에게 언급을 하기 위해서입니다.
… 이건 처음했던 질문이고, 사실 궁금한 질문은


위 그림처럼 버전을 확인할 수 있는 한글 OCX API가 있으면 알려주시면 감사하겠습니다. 없다면 방법이라도…

안녕하세요!

현재 GetVersion으로는 Major버전밖에 확인이 안되고 있습니다. 빌드 버전 기록에 오류가 있는 듯 하여 하반기 패치 때 반영해서 정상 동작 할 수 있도록 하겠습니다.

감사합니다.

안녕하세요.

한글 컨트롤의 버전은 현재 관리되고 있지 않아서 ocx버전은 확인이 어렵습니다.

대신 아래 코드를 이용하면 현재 사용중인 한글의 버전은 가져올 수 있습니다.

#include <Windows.h>
#include
#pragma comment(lib, “Version.lib”)

std::string GetCurrentAppVersion()
{
HMODULE hModule = GetModuleHandle(L"HwpApp.dll");
WCHAR szExeName[MAX_PATH] = L"";
DWORD dwVerInfoSize = 0;
VS_FIXEDFILEINFO* pFixedInfo;
char* pBuffer = nullptr;
std::string strVersion;
UINT uVersionLen;

GetModuleFileName(hModule, szExeName, MAX_PATH);
dwVerInfoSize = GetFileVersionInfoSize(szExeName, nullptr);
pBuffer = new char[dwVerInfoSize];
if (pBuffer == nullptr)
	return "";

GetFileVersionInfo(szExeName, 0, dwVerInfoSize, reinterpret_cast<LPVOID>(pBuffer));
VerQueryValue(pBuffer, L"\\", reinterpret_cast<void**>(&pFixedInfo), &uVersionLen);

strVersion = std::to_string(HIWORD(pFixedInfo->dwFileVersionMS)) + "." +
	std::to_string(LOWORD(pFixedInfo->dwFileVersionMS)) + "." +
	std::to_string(HIWORD(pFixedInfo->dwFileVersionLS)) + "." +
	std::to_string(LOWORD(pFixedInfo->dwFileVersionLS));

delete[] pBuffer;

return strVersion;

}

해당코드로 도움이 되었으면 좋겠네요

더 궁금한 점 있으시면 언제든지 문의주세요.