#2
cumtlzc2018-05-02 18:47
|
确认了库文件的链接没有任何问题
当程序添加以下的头文件
#include <string>
#include <iostream>
#include <sstream>
并且调用creo自身的函数ProStringToWstring(menuname,"menuname.txt");
将会出现:
1>protk_dllmd.lib(srcwrappers.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(test1.obj 中)
1>protk_dllmd.lib(srcwrappers.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MD_DynamicRelease”不匹配值“MDd_DynamicDebug”(test1.obj 中)
1>protk_dllmd.lib(srci18n.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(test1.obj 中)
1>protk_dllmd.lib(srci18n.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MD_DynamicRelease”不匹配值“MDd_DynamicDebug”(test1.obj 中)
请问有没有大佬遇到过该类问题???
程序代码:
// test1.cpp : 定义 DLL 的初始化例程。
//
#include "stdafx.h"
#include "test1.h"
#include <string>
#include <iostream>
#include <sstream>
using namespace std;
#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。
//
// Ctest1App
BEGIN_MESSAGE_MAP(Ctest1App, CWinApp)
END_MESSAGE_MAP()
// Ctest1App 构造
Ctest1App::Ctest1App()
{
// TODO: 在此处添加构造代码,
// 将所有重要的初始化放置在 InitInstance 中
}
// 唯一的一个 Ctest1App 对象
Ctest1App theApp;
// Ctest1App 初始化
BOOL Ctest1App::InitInstance()
{
CWinApp::InitInstance();
return TRUE;
}
#include <ProToolkit.h>
#include <ProUtil.h>
#include <ProMenuBar.h>
#include <ProMenu.h>
#include <ProMode.h>
#include <ProMdl.h>
#include <ProSolid.h>
#include <ProAsmcomp.h>
#include <ProArray.h>
#include <ProModelitem.h>
#include <ProLayer.h>
#include <ProCabling.h>
#include <ProCsys.h>
#include "UtilCable.h"
#include "UtilString.h"
#include "TestError.h"
#include "test_dialog.h"
void MyDLG();
static uiCmdAccessState ChuangKouAccess (uiCmdAccessMode access_mode);
ProFileName menuname;
extern "C" int user_initialize(int argc,char *argv[])
{
uiCmdCmdId cmd_id;
ProError err;
ProStringToWstring(menuname,"menuname.txt");
err=ProMenubarMenuAdd("BuXian","BuXian","Help", PRO_B_TRUE,menuname);
err=ProCmdActionAdd("MyDLG",(uiCmdCmdActFn)MyDLG,uiCmdPrioDefault,ChuangKouAccess,PRO_B_FALSE,PRO_B_FALSE,&cmd_id);
err=ProMenubarmenuPushbuttonAdd("BuXian","JianDanBX","JianDanBX","JianDanBX_help",NULL,PRO_B_TRUE,cmd_id,menuname);
return 0;
}
void MyDLG()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
test_dialog *my=new test_dialog;
my->Create(IDD_DIALOG1,NULL);
my->ShowWindow(SW_SHOW);
}
static uiCmdAccessState ChuangKouAccess (uiCmdAccessMode access_mode)
{
return ACCESS_AVAILABLE;
}
extern "C" void user_terminate()
{
return;
}