UI message
Posted: Wed Nov 07, 2018 9:52 am
How to handle messages under C++ Demo, such as the message that the document opens to display
PDF-XChange Community Forum - Support for our products - PDF XChange Editor, PDF XChange Tools, PDF XChange Standard, PDF XChange PRO
https://forum.pdf-xchange.com/
The ImportConverter sample of Editor SDKSasha - Tracker Dev Team wrote:Hello bifangdejingjie,
What C++ Demo are you referring to?
Cheers,
Alex
thanks,another question.If not using mfc but Win32,then how to have a handler?Sasha - Tracker Dev Team wrote:Hello bifangdejingjie,
Go to the main dialog editor in the Resource View. Select the added AXControl on the form and open it's properties. From the properties pane, you can choose the Control's events - there should be only one event - OnEvent. Click the dropdown and choose Add OnEventPxvControl. Then you will have the handler. To handle the needed event, you will have to register it with the IPXV_Control::EnableEventListening method. Then you can check whether the nEventID is equal to your's event id and act accordingly.
Cheers,
Alex
Hello Alex,Sasha - Tracker Dev Team wrote:Hello bifangdejingjie,
Well we can't possibly know, how you are creating and using your control, thus we can't assist further without the more detailed explanation and code/project sample.
Cheers,
Alex
Hello Alex,Sasha - Tracker Dev Team wrote:Hello bifangdejingjie,
Well we can't possibly know, how you are creating and using your control, thus we can't assist further without the more detailed explanation and code/project sample.
Cheers,
Alex
Code: Select all
#pragma once
#include "PXVCommonData.h"
using namespace PXV;
class CEventHandle;
const int ID_EVENT = 1;
extern _ATL_FUNC_INFO info1;
const GUID LIBID_Event = { 0x8d00937c, 0x06b9, 0x4b5c,{ 0x9a, 0x94, 0xa7, 0xe0, 0x46, 0x33, 0x6b, 0x01 } };
typedef IDispEventImpl<ID_EVENT,
CEventHandle,
&__uuidof(PXV::_IPXV_ControlEvents),
&GUID_NULL,
1,
0> MyPXVEvents;
class CEventHandle : public MyPXVEvents
{
public:
// constructor/destructor
CEventHandle();
virtual ~CEventHandle();
// set Monitor
void SetEventMonitor(PXV::IPXV_ControlPtr v_pEvent);
/*
// pure virtual functions
virtual LRESULT OnEvent(/ *[in]* / long nEventID,
/ *[in]* / struct IEvent * pEvent,
/ *[in]* / IUnknown * pFrom) = 0;*/
// Sink interface declaration
BEGIN_SINK_MAP(CEventHandle)
SINK_ENTRY_INFO(ID_EVENT, __uuidof(PXV::_IPXV_ControlEvents), IDS::e_activeDocChanged, __OnEvent, &info1)
END_SINK_MAP()
// COM event hookup
STDMETHOD_(LRESULT, __OnEvent)(/*[in]*/ long nEventID,
/*[in]*/ struct IEvent * pEvent,
/*[in]*/ IUnknown * pFrom);
private:
PXV::IPXV_ControlPtr m_pCtrlEvent;
void _Release();
};
Code: Select all
#include "stdafx.h"
#include "EventHandle.h"
_ATL_FUNC_INFO info1 = { CC_STDCALL, VT_HRESULT, 3,{ VT_I4, VT_DISPATCH, VT_UNKNOWN } };
CEventHandle::CEventHandle()
{
}
CEventHandle::~CEventHandle()
{
_Release();
}
HRESULT CEventHandle::__OnEvent(long nEventID, IEvent * pEvent, IUnknown * pFrom)
{
// return OnEvent(nEventID, pEvent, pFrom);
OutputDebugString(_T("Hello~"));
return 0;
}
void CEventHandle::_Release()
{
if (m_pCtrlEvent != NULL)
{
MyPXVEvents::DispEventUnadvise(m_pCtrlEvent);
m_pCtrlEvent = NULL;
}
}
void CEventHandle::SetEventMonitor(PXV::IPXV_ControlPtr v_pEvent)
{
HRESULT hr = NULL;
_Release();
if (v_pEvent != NULL)
{
hr = MyPXVEvents::DispEventAdvise(v_pEvent, &__uuidof(PXV::_IPXV_ControlEvents));
if (FAILED(hr))
{
_com_raise_error(hr);
}
m_pCtrlEvent = v_pEvent;
}
}
m_pIPXV->EnableEventListening(_T("e.activeDocChanged"), TRUE);
m_pMyEvent = new CEventHandle;
m_pMyEvent->SetEventMonitor(m_pIPXV);
Code: Select all
_ATL_FUNC_INFO info1 = { CC_STDCALL, VT_HRESULT, 3,{ VT_I4, VT_DISPATCH, VT_UNKNOWN } };
Code: Select all
_ATL_FUNC_INFO info1 = { CC_STDCALL, VT_EMPTY, 3,{ VT_I4, VT_DISPATCH, VT_UNKNOWN} };
Although I have solved the problem ahead of time, thank you very much.Sasha - Tracker Dev Team wrote:Hello bifangdejingjie,
We've investigated the issue and here's a solution - change this line of code:to thisCode: Select all
_ATL_FUNC_INFO info1 = { CC_STDCALL, VT_HRESULT, 3,{ VT_I4, VT_DISPATCH, VT_UNKNOWN } };
Cheers,Code: Select all
_ATL_FUNC_INFO info1 = { CC_STDCALL, VT_EMPTY, 3,{ VT_I4, VT_DISPATCH, VT_UNKNOWN} };
Alex
Hello Alex,Sasha - Tracker Dev Team wrote:
Hello Alex,Sasha - Tracker Dev Team wrote:Hello bifangdejingjie,
Please make sure to check the forum search and see if the same has not already been answered:
viewtopic.php?f=66&t=25912&p=101251&hil ... er#p101251
Cheers,
Alex
Hello,AlexSasha - Tracker Dev Team wrote:Hello bifangdejingjie,
If you are using the C++ language, then you can easily understand the C# language. Basically, what you need to do is to create your class implementation of the IUIX_CmdHandler interface and then set is as a handler of the needed command. This sample shows how to do it in C#:
https://gist.github.com/Polaringu/ad31ad433401c1c004d0
Cheers,
Alex
Code: Select all
#pragma once
#include "stdafx.h"
class CPXVCmdHandler : public PXV::IUIX_CmdHandler
{
public:
CPXVCmdHandler(PXV::IPXV_Inst *pInst);
virtual ~CPXVCmdHandler();
virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppvObject);
virtual ULONG STDMETHODCALLTYPE AddRef(void);
virtual ULONG STDMETHODCALLTYPE Release(void);
virtual HRESULT STDMETHODCALLTYPE OnCreateNewCtl(PXV::IUIX_Cmd *pCmd, PXV::IUIX_CmdBar *pParent, PXV::IUIX_Obj **ppCtrl);
virtual HRESULT STDMETHODCALLTYPE OnGetCtlSizes(PXV::IUIX_CmdItem *pItem, tagSIZE *pSize, tagSIZE *pMinSize, tagSIZE *piMaxSize);
virtual HRESULT STDMETHODCALLTYPE OnGetItemState(PXV::IUIX_Cmd *pCmd, PXV::IUIX_CmdItem *pItem, PXV::IUIX_Obj *pOwner, long *pState);
virtual HRESULT STDMETHODCALLTYPE OnGetItemSubMenu(PXV::IUIX_CmdItem *pItem, PXV::IUIX_CmdMenu **ppSubMenu);
virtual HRESULT STDMETHODCALLTYPE OnNotify(long lCode, PXV::IUIX_Cmd *pCmd, PXV::IUIX_CmdItem *pItem, PXV::IUIX_Obj *pOwner, ULONG_PTR puiNotifyData);
virtual HRESULT STDMETHODCALLTYPE OnDrawItemIcon(PXV::IUIX_RenderContext *pRC, PXV::IUIX_CmdItem *pItem, tagRECT *pstIconRect, tagRECT *pstClip);
PXV::IPXV_Inst *m_pInst;
LONG m_cRef = 0;
PXV::IUIX_CmdHandler *m_pOldSaveHandler;
PXV::IUIX_CmdHandler *m_pOldSaveAsHandler;
private:
long m_lSaveID;
long m_lSaveAsID;
};
Code: Select all
#include "stdafx.h"
#include "PXVCmdHandler.h"
CPXVCmdHandler::CPXVCmdHandler(PXV::IPXV_Inst *pInst)
{
m_pInst = pInst;
HRESULT hRes;
hRes = m_pInst->Str2ID(_T("cmd.save"), VARIANT_TRUE, &m_lSaveID);
hRes = m_pInst->Str2ID(_T("cmd.saveAs"), VARIANT_TRUE, &m_lSaveAsID);
}
CPXVCmdHandler::~CPXVCmdHandler()
{
}
HRESULT STDMETHODCALLTYPE CPXVCmdHandler::QueryInterface(REFIID riid, void **ppvObject)
{
// Always set out parameter to NULL, validating it first.
if (!ppvObject)
return E_INVALIDARG;
*ppvObject = NULL;
IID IID_IFun = { 0 };
IIDFromString(_T("{157ca85b-4378-4a20-b060-37c61ded02a9}"), &IID_IFun);
if (riid == IID_IFun)
{
// Increment the reference count and return the pointer.
*ppvObject = (LPVOID)this;
AddRef();
return NOERROR;
}
return E_NOINTERFACE;
}
ULONG STDMETHODCALLTYPE CPXVCmdHandler::AddRef(void)
{
InterlockedIncrement(&m_cRef);
return m_cRef;
}
ULONG STDMETHODCALLTYPE CPXVCmdHandler::Release(void)
{
// Decrement the object's internal counter.
ULONG ulRefCount = InterlockedDecrement(&m_cRef);
if (0 == m_cRef)
{
delete this;
}
return ulRefCount;
}
HRESULT STDMETHODCALLTYPE CPXVCmdHandler::OnCreateNewCtl(PXV::IUIX_Cmd *pCmd, PXV::IUIX_CmdBar *pParent, PXV::IUIX_Obj **ppCtrl)
{
long lTmpID = 0;
do
{
if (nullptr == pCmd) break;
pCmd->get_ID(&lTmpID);
if (lTmpID == m_lSaveID)
{
if (nullptr == m_pOldSaveHandler) break;
m_pOldSaveHandler->OnCreateNewCtl(pCmd, pParent, ppCtrl);
}
else if (lTmpID == m_lSaveAsID)
{
if (nullptr == m_pOldSaveAsHandler) break;
m_pOldSaveAsHandler->OnCreateNewCtl(pCmd, pParent, ppCtrl);
}
else *ppCtrl = nullptr;
} while (false);
return S_OK;
}
HRESULT STDMETHODCALLTYPE CPXVCmdHandler::OnGetCtlSizes(PXV::IUIX_CmdItem *pItem, tagSIZE *pSize, tagSIZE *pMinSize, tagSIZE *pMaxSize)
{
PXV::IUIX_Cmd *pCmd = nullptr;
long lTmpID = 0;
do
{
if (nullptr == pItem) break;
pItem->get_Cmd(&pCmd);
if (nullptr == pCmd) break;
pCmd->get_ID(&lTmpID);
if (lTmpID == m_lSaveID)
{
if (nullptr == m_pOldSaveHandler) break;
m_pOldSaveHandler->OnGetCtlSizes(pItem, pSize, pMinSize, pMaxSize);
}
else if (lTmpID == m_lSaveAsID)
{
if (nullptr == m_pOldSaveAsHandler) break;
m_pOldSaveAsHandler->OnGetCtlSizes(pItem, pSize, pMinSize, pMaxSize);
}
} while (false);
return S_OK;
}
HRESULT STDMETHODCALLTYPE CPXVCmdHandler::OnGetItemState(PXV::IUIX_Cmd *pCmd, PXV::IUIX_CmdItem *pItem, PXV::IUIX_Obj *pOwner, long *pState)
{
long lTmpID = 0;
do
{
if (nullptr == pCmd) break;
pCmd->get_ID(&lTmpID);
if (lTmpID == m_lSaveID)
{
if (nullptr == m_pOldSaveHandler) break;
m_pOldSaveHandler->OnGetItemState(pCmd, pItem, pOwner, pState);
}
else if (lTmpID == m_lSaveAsID)
{
if (nullptr == m_pOldSaveAsHandler) break;
m_pOldSaveAsHandler->OnGetItemState(pCmd, pItem, pOwner, pState);
}
else
*pState = (long)PXV::UIX_CmdItemState::UIX_CmdItemState_Unknown;
} while (false);
return S_OK;
}
HRESULT STDMETHODCALLTYPE CPXVCmdHandler::OnGetItemSubMenu(PXV::IUIX_CmdItem *pItem, PXV::IUIX_CmdMenu **ppSubMenu)
{
long lTmpID = 0;
PXV::IUIX_Cmd *pCmd = nullptr;
do
{
if (nullptr == pItem) break;
pItem->get_Cmd(&pCmd);
if (nullptr == pCmd) break;
pCmd->get_ID(&lTmpID);
if (lTmpID == m_lSaveID)
{
if (nullptr == m_pOldSaveHandler) break;
m_pOldSaveHandler->OnGetItemSubMenu(pItem, ppSubMenu);
}
else if (lTmpID == m_lSaveAsID)
{
if (nullptr == m_pOldSaveAsHandler) break;
m_pOldSaveAsHandler->OnGetItemSubMenu(pItem, ppSubMenu);
}
else
pItem->get_SubMenu(ppSubMenu);
} while (false);
return S_OK;
}
HRESULT STDMETHODCALLTYPE CPXVCmdHandler::OnNotify(long lCode, PXV::IUIX_Cmd *pCmd, PXV::IUIX_CmdItem *pItem, PXV::IUIX_Obj *pOwner, ULONG_PTR puiNotifyData)
{
long lTmpID = 0;
do
{
if (nullptr == pCmd) break;
pCmd->get_ID(&lTmpID);
if (lTmpID == m_lSaveID)
{
if (nullptr == m_pOldSaveHandler) break;
m_pOldSaveHandler->OnNotify(lCode, pCmd, pItem, pOwner, puiNotifyData);
}
else if (lTmpID == m_lSaveAsID)
{
if (nullptr == m_pOldSaveAsHandler) break;
m_pOldSaveAsHandler->OnNotify(lCode, pCmd, pItem, pOwner, puiNotifyData);
}
} while (false);
return S_OK;
}
HRESULT STDMETHODCALLTYPE CPXVCmdHandler::OnDrawItemIcon(PXV::IUIX_RenderContext *pRC, PXV::IUIX_CmdItem *pItem, tagRECT *pstIconRect, tagRECT *pstClip)
{
long lTmpID = 0;
PXV::IUIX_Cmd *pCmd = nullptr;
do
{
if (nullptr == pItem) break;
pItem->get_Cmd(&pCmd);
if (nullptr == pCmd) break;
pCmd->get_ID(&lTmpID);
if (lTmpID == m_lSaveID)
{
if (nullptr == m_pOldSaveHandler) break;
m_pOldSaveHandler->OnDrawItemIcon(pRC, pItem, pstIconRect, pstClip);
}
else if (lTmpID == m_lSaveAsID)
{
if (nullptr == m_pOldSaveAsHandler) break;
m_pOldSaveAsHandler->OnDrawItemIcon(pRC, pItem, pstIconRect, pstClip);
}
} while (false);
return S_OK;
}
Code: Select all
void CMainWindow::CustomSaveCmd()
{
do
{
IPXV_InstPtr pInst = nullptr;
m_pIPXV->get_Inst(&pInst);
if (nullptr == pInst) break;
IUIX_InstPtr pIuiInst = nullptr;
m_pMyCmdHandler = new CPXVCmdHandler(pInst);
pInst->GetExtension(_T("UIX"), (IUnknown**)(&pIuiInst));
if (nullptr == pIuiInst) break;
IUIX_CmdManagerPtr pCmdManager = nullptr;
pIuiInst->get_CmdManager(&pCmdManager);
if (nullptr == pCmdManager) break;
IUIX_CmdCollectionPtr pCmds = nullptr;
pCmdManager->get_Cmds(&pCmds);
if (nullptr == pCmds) break;
IUIX_CmdPtr pCmd = nullptr;
pCmds->Find(_T("cmd.save"), &pCmd);
if (nullptr == pCmd) break;
IUIX_CmdHandlerPtr pHandler = nullptr;
pCmd->get_Handler(&pHandler);
m_pMyCmdHandler->m_pOldSaveHandler = pHandler;
pHandler = m_pMyCmdHandler;
/* pCmds->Find(_T("cmd.saveAs"), &pCmd);
pCmd->get_Handler(&pHandler);
m_pMyCmdHandler->m_pOldSaveAsHandler = pHandler;
pHandler = m_pMyCmdHandler;*/
} while (false);
}
I need your help~Sasha - Tracker Dev Team wrote:Hello bifangdejingjie,
If you are using the C++ language, then you can easily understand the C# language. Basically, what you need to do is to create your class implementation of the IUIX_CmdHandler interface and then set is as a handler of the needed command. This sample shows how to do it in C#:
https://gist.github.com/Polaringu/ad31ad433401c1c004d0
Cheers,
Alex
Hello,AlexSasha - Tracker Dev Team wrote:Hello bifangdejingjie,
What didn't work exactly? Also, we will need a working sample project that we can try and recreate the problem (do not forget the problem description and steps to reproduce).
Cheers,
Alex
Hello,AlexSasha - Tracker Dev Team wrote:
Hello,AlexSasha - Tracker Dev Team wrote:
Hello Alex,Sasha - Tracker Dev Team wrote:Hello bifangdejingjie,
Here's a link to the operation that you can use:
https://sdkhelp.pdf-xchange.com/vi ... Watermarks
Cheers,
Alex
Hello Alex,Sasha - Tracker Dev Team wrote:Hello bifangdejingjie,
I do not quite understand what you want. Basically, if you want to handle the command - you will have to make the custom command handler for it - that's all that is to it.
Cheers,
Alex
Just like "cmd.saveTo".Where may I know about these command name.bifangdejingjie wrote:Hello Alex,Sasha - Tracker Dev Team wrote:Hello bifangdejingjie,
I do not quite understand what you want. Basically, if you want to handle the command - you will have to make the custom command handler for it - that's all that is to it.
Cheers,
Alex
What is the command name of “select folder for new palce” command and "save to custom place" command?
Hello Alex,Sasha - Tracker Dev Team wrote:Hello bifangdejingjie,
To know the command ID - launch Customize Commands (Right Click on any command bar -> Customize Commands) and then right click the command that you need and selecte Properties. There you can see it's ID.
Cheers,
Alex
Such as,which demo to do the operation and?bifangdejingjie wrote:Hello Alex,Sasha - Tracker Dev Team wrote:Hello bifangdejingjie,
To know the command ID - launch Customize Commands (Right Click on any command bar -> Customize Commands) and then right click the command that you need and selecte Properties. There you can see it's ID.
Cheers,
Alex
I don't know where to do the operation what your said.
May you elaborate on that?
Hello Alex,Sasha - Tracker Dev Team wrote:That should be done in the End-User Editor as this KB article suggests:
https://www.pdf-xchange.com/knowle ... nge-Editor
Cheers,
Alex
Hello Alex,Sasha - Tracker Dev Team wrote:That should be done in the End-User Editor as this KB article suggests:
https://www.pdf-xchange.com/knowle ... nge-Editor
Cheers,
Alex
Hello Alex,Sasha - Tracker Dev Team wrote:Hello bifangdejingjie,
Are you using Any CPU configuration to build your project?
Cheers,
Alex
Hello Alex,Sasha - Tracker Dev Team wrote:Hello bifangdejingjie,
Here's a link to the operation that you can use:
https://sdkhelp.pdf-xchange.com/vi ... Watermarks
Cheers,
Alex
Hello Alex,Sasha - Tracker Dev Team wrote:Hello bifangdejingjie,
If you are using the Editor SDK - then it's better to use the operation - it's more optimized.
Cheers,
Alex
Code: Select all
if (nullptr == pParams) break;
PXV::ICabNodePtr pRoot = nullptr;
pParams->get_Root(&pRoot);
if (nullptr == pRoot) break;
pRoot->SetUnknown(_T("Input"), pCoreDoc);
PXV::ICabNodePtr pOptions = nullptr;
pOptions = (ICabNodePtr)pRoot["Options"];
pOptions->SetString(_T("PagesRange.Type"), _T("All"));
pOptions->SetString(_T("Text"), _T("Hi, I am watermark."));
pOptions->SetInt(_T("Rotation"), 33);
// ((ICabNodePtr)pOptions["PagesRange.Type"])->put_String(_T("All"));
// ((ICabNodePtr)pOptions["Text"])->put_String(_T("Hi, I am watermark."));
// ((ICabNodePtr)pOptions["Rotation"])->put_Int(33);
pInst->AsyncDoAndWaitForFinish(pOp, 0);
Hello Alex,Sasha - Tracker Dev Team wrote:Hello bifangdejingjie,
Are you using Any CPU configuration to build your project?
Cheers,
Alex
Code: Select all
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<assembly manifestVersion="1.0"
xmlns="urn:schemas-microsoft-com:asm.v1"
xmlns:asmv2="urn:schemas-microsoft-com:asm.v2"
xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" >
<assemblyIdentity version="1.0.0.0" name="PdfDemo" />
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
<!-- Registration-Free Redistribution part -->
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="PDFXEditCore.x86.X" version="1.0.0.0" />
</dependentAssembly>
</dependency>
<!-- Optional: enable themes for Windows common controls and dialogs (Windows XP and later) -->
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*" />
</dependentAssembly>
</dependency>
<!-- Optional: enable DPI-Aware mode to prevent automatical DPI-scaling to avoid 'blurring' of UI -->
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>true</dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
</assembly>
Code: Select all
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
type="win32"
name="PDFXEditCore.x86.X"
version="1.0.0.0" />
<file name = "PDFXEditCore.x86.dll">
<typelib
tlbid="{0AAFF38C-CB91-4424-A8B9-F8B504ACBE0C}"
version="1.0"
helpdir=""/>
<comClass
clsid="{973BF60B-4CC6-4be0-B408-3D80E07FC2E6}"
threadingModel="Apartment" />
<comClass
clsid="{A1149909-4EDC-4421-B9E5-E93C25A000A1}"
threadingModel="Apartment" />
</file>
<comInterfaceExternalProxyStub
name="IPXV_Inst"
iid="{D726366D-34D6-49fc-A341-7B84C54CCA3E}"
proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"
baseInterface="{00000000-0000-0000-C000-000000000046}"
tlbid="{0AAFF38C-CB91-4424-A8B9-F8B504ACBE0C}" />
<comInterfaceExternalProxyStub
name="IPXV_Control"
iid="{71300D43-687F-436A-A699-2B37448D0803}"
proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"
baseInterface="{00000000-0000-0000-C000-000000000046}"
tlbid="{0AAFF38C-CB91-4424-A8B9-F8B504ACBE0C}" />
</assembly>
Code: Select all
<assemblyIdentity type="win32"
Hello Alex,Sasha - Tracker Dev Team wrote:Hello bifangdejingjie,
I think here's the problem:It's being used in several places - so do take that into an account.Code: Select all
<assemblyIdentity type="win32"
Cheers,
Alex
Hello Alex,Sasha - Tracker Dev Team wrote:Hello bifangdejingjie,
If you want to build for x64 - you should use type="x64".
Cheers,
Alex
Hello Alex,Sasha - Tracker Dev Team wrote:Hello bifangdejingjie,
If you want to build for x64 - you should use type="x64".
Cheers,
Alex
Hello Alex,Sasha - Tracker Dev Team wrote:Hello bifangdejingjie,
If you want to build for x64 - you should use type="x64".
Cheers,
Alex
Hello Alex,Sasha - Tracker Dev Team wrote:Hello bifangdejingjie,
1) Do not paste quote at the start of each message.
2) As we said before, we will need both of your installs that work and do not work that's all that we need for now.
Cheers,
Alex