找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 898|回复: 2

[求助] creo4.0二次开发环境搭建用VS2015版本编译出错

[复制链接]

2

主题

2

回帖

0

威望

实习生

积分
5
发表于 2024-4-26 01:11 | 显示全部楼层 |阅读模式

我把creo4.0的otk和protoolkit库文件动态库文件全部都加进VS2015的配置的附加依赖库了 微信图片_20240426010627.png

otk_cpp_md.lib
otk_222_md.lib
otk_no222_md.lib
otk_cpp_async_md.lib
protk_dllmd_NU.lib
protkmd_NU.lib
pt_asynchronous.lib
ptasyncmd.lib
ucore.lib
udata.lib
netapi32.lib
wsock32.lib
psapi.lib
mpr.lib
ws2_32.lib

代码是creo本身自带的,用它的代码打开编译就没有问题,换成我自己创建的MFC-DLL就报错。我查看了它的代码是用windows标准库,但是我改成windows标准库也不行。
BEGIN_MESSAGE_MAP(CMyMDSApp, CWinApp)
END_MESSAGE_MAP()


// CMyMDSApp 构造

CMyMDSApp::CMyMDSApp()
{
        // TODO:  在此处添加构造代码,
        // 将所有重要的初始化放置在 InitInstance 中
}


// 唯一的一个 CMyMDSApp 对象

CMyMDSApp theApp;


// CMyMDSApp 初始化

BOOL CMyMDSApp::InitInstance()
{
        CWinApp::InitInstance();

        return TRUE;
}
static ofstream logFile;

class OTKTestCallBack : public virtual pfcUICommandActionListener
{
public:
        void OnCommand();
};


/* Entry */
extern "C" int user_initialize(
        int argc,
        char *argv[],
        char *version,
        char *build,
        wchar_t errbuf[80])
{
        pfcUICommand_ptr command;

        logFile.open("log.txt", ios:ut);
        logFile << "- LOGS " << endl;
        logFile << "=============" << endl;


        try
        {
                pfcSession_ptr                Session = pfcGetProESession();

                wfcWSession_ptr wSession = wfcWSession::cast(Session);

                try {
                        wSession->RibbonDefinitionfileLoad("otk_install_test.rbn");
                }
                xcatchbegin
                        xcatch(pfcXToolkitError, xtoole) {
                        xint err = xtoole->GetErrorCode();
                        xstring method = xtoole->GetMethodName();
                        logFile << "pfcXToolkitError in method " << method << " with error " << err << "\n" << endl;
                        logFile << "continuing..\n";
                } xcatchend

                        pfcUICommand_ptr InputCommand1 = wSession->UICreateCommand("OTKInstallTest", new OTKTestCallBack());
                InputCommand1->Designate("msg_user.txt", "OTK Install Test", "OTK Install Test", "OTK Install Test");

                return (wfcTK_NO_ERROR);
        }
        xcatchbegin
                xcatchcip(Ex)
                logFile << "Exception:\n" << Ex << endl;
        return (wfcTK_NO_ERROR);
        xcatchend
}

/* Exit*/
extern "C" void user_terminate()
{
        logFile << endl;
        logFile << "================================================" << endl;
        logFile << "OTK application terminated successfully." << endl;
        logFile << "================================================" << endl;

        logFile.close();
}

void OTKTestCallBack::OnCommand()
{
        try
        {
                pfcSession_ptr                Session = pfcGetProESession();

                Session->UIShowMessageDialog("OTK Install Test succeeded!!", NULL);
        }
        xcatchbegin
                xcatchcip(Ex)
                logFile << "Exception:\n" << Ex << endl;
        xcatchend
}

4

主题

263

回帖

2

威望

工程师

积分
362
发表于 2024-4-28 10:08 | 显示全部楼层
学习一下,等大神
我有个老插件在CREO2.0+vs2010能编译通过,换到8.0和VS2022就完蛋了
回复

使用道具 举报

0

主题

61

回帖

0

威望

助工

积分
66
发表于 2024-5-12 12:24 | 显示全部楼层
建议先不要用OTK,只有Toolkit,编译过了以后再把OTK加进去。

另外8.0对应的是VS2019,你用VS2022可能需要另外配置。
CREO2.0版本太老了,他的有些库设置跟8.0差别比较大,需要另外配置,建议看看附带的Release Notes还有Getting Start,里面有详细的设置介绍。还有VS2010跟VS2019也差别很大,比如VS2019里的Debug库不再能跟Release库混用,PTC没有提供Debug库,所以所有的系统库都要改用Release
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

本站为非营利性站点,部分资源为网友搜集或发布,仅供学习和研究使用,如用于商业用途,请购买正版。站内所发布的资源,如有侵犯你的权益,请发邮件联系我们,本站将立即改正或删除。

手机版|小黑屋|野火论坛(©2007~2024) ( 苏ICP备11036728号-2 )苏公网安备 32039102000103号|站长QQ28016688

GMT+8, 2024-11-25 11:13 , Processed in 0.148225 second(s), 24 queries .

快速回复 返回顶部 返回列表