iCAx开思工具箱

标题: 外部程序'diyi'初始化失败:错误'PRO_TK_BAD_CONTEXT' [打印本页]

作者: zhudengkui0713    时间: 2011-4-29 16:51
标题: 外部程序'diyi'初始化失败:错误'PRO_TK_BAD_CONTEXT'
proe注册文件时提示错误:外部程序'diyi'初始化失败:错误'PRO_TK_BAD_CONTEXT'
这是什么问题,应该怎么解决。谢了
作者: wangyao1052    时间: 2011-4-30 17:26
是不是路径错了   
还是在user_initialize函数中至少要有一个Pro/Toolkit的函数  而你的程序是空的
能否具体点
作者: zhudengkui0713    时间: 2011-5-1 09:35
2#  

一下是程序,路径也没有问题。
// sym.cpp : 定义 DLL 的初始化例程。
//
#include "stdafx.h"
#include "sym.h"
#include "ProUtil.h"
#include "ProMenu.h"
#include "ProMessage.h"
#include "ProMenuBar.h"
#define  PRO_USE_VAR_ARGS 1
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
//
//TODO: 如果此 DLL 相对于 MFC DLL 是动态链接的,
//  则从此 DLL 导出的任何调入
//  MFC 的函数必须将 AFX_MANAGE_STATE 宏添加到
//  该函数的最前面。
//
//  例如:
//
//  extern "C" BOOL PASCAL EXPORT ExportedFunction()
//  {
//   AFX_MANAGE_STATE(AfxGetStaticModuleState());
//   // 此处为普通函数体
//  }
//
//  此宏先于任何 MFC 调用
//  出现在每个函数中十分重要。这意味着
//  它必须作为函数中的第一个语句
//  出现,甚至先于所有对象变量声明,
//  这是因为它们的构造函数可能生成 MFC
//  DLL 调用。
//
//  有关其他详细信息,
//  请参阅 MFC 技术说明 33 和 58。
//

// CsymApp
BEGIN_MESSAGE_MAP(CsymApp, CWinApp)
END_MESSAGE_MAP()

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

// 唯一的一个 CsymApp 对象
CsymApp theApp;

// CsymApp 初始化
BOOL CsymApp::InitInstance()
{
CWinApp::InitInstance();
return TRUE;
}
static uiCmdAccessState AccessDefault(uiCmdAccessMode)
{
return ACCESS_AVAILABLE;
}
//自定义函数
void First_fun()
{
AfxMessageBox(_T("first fun is working"));   //自定义功能函数
}
void Second_fun()
{
AfxMessageBox(_T("second fun is working"));   //自定义功能函数
}
void Third_fun()
{
AfxMessageBox(_T("third fun is working"));   //自定义功能函数
}
//int sym();  //浮动菜单入口函数
extern "C" void user_initialize()
{

ProError err;
ProFileName MsgFile;
ProStringToWstring(MsgFile,"abc.txt");
int menu_id;
ProMode mode;
err = ProModeCurrentGet(&mode);
if(mode == PRO_MODE_PART||mode == PRO_MODE_ASSEMBLY) //指定只能在PART和ASM模式下使用
{
  err=ProMenuFileRegister("User_functions","Sample.mnu",&menu_id);
  err=ProMenubuttonActionSet("User_functions","The first",(ProMenubuttonAction)First_fun,NULL,0);
  err=ProMenubuttonActionSet("User_functions","The second",(ProMenubuttonAction)Second_fun,NULL,0);
  err=ProMenubuttonActionSet("User_functions","The third",(ProMenubuttonAction)Third_fun,NULL,0);
if(mode == PRO_MODE_PART)  //设置在PART下”the first“是不可见状态
{
  err = ProMenubuttonVisibilitySet("User_functions","The first",PRO_B_FALSE);
}
ProMenuCreate(PROMENUTYPE_MAIN,"User_functions",&menu_id);
ProMenuProcess("User_functions",&menu_id);
}
return  ;
}
extern "C" void user_terminate()
{
//结束代码
}
作者: wangyao1052    时间: 2011-5-2 09:16
没加载过浮动菜单
不知道
作者: darkhourse    时间: 2011-6-18 21:54
返回误'PRO_TK_BAD_CONTEXT'  的值是因为你的proe的模式不再零件和组建模式下




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3