>>> I've hit a road block with generating a proxy DLL. Win98 does not want to load rvplace.exe and it complains that it can't find the exported functions even though dumpbin shows them correctly. The proxy DLL loads just fine with rvplace.exe on Win XP and up. Tried to compile the DLL with VC6 and MSVS2005 on Win98, XP and 7, but I end up getting the same error message.

I know this is an old thread, but I see the apps were originally compiled with Borland 5.02. There's one class in stepDsp.dll (exports below) - so it was probably at least part caused by Borland C++ name mangling vs. Msft mangling.

A.

LIBRARY STEPDSP.DLL

EXPORTS

@Stepdsp@$bctr$qipcp6Speeds @14 ; Stepdsp::Stepdsp(int,char*,Speeds*)

@Stepdsp@$bdtr$qv @16 ; Stepdsp::~Stepdsp()

@Stepdsp@CalcMoveTime$quii @2 ; Stepdsp::CalcMoveTime(unsigned int,int)

@Stepdsp@CalcProcTime$qui @12 ; Stepdsp::CalcProcTime(unsigned int)

@Stepdsp@CalcRampTime$qui @11 ; Stepdsp::CalcRampTime(unsigned int)

@Stepdsp@CalcSpeedTime$quii @13 ; Stepdsp::CalcSpeedTime(unsigned int,int)

@Stepdsp@CalculateRamp$qui @3 ; Stepdsp::CalculateRamp(unsigned int)

@Stepdsp@GearAxis$qii @10 ; Stepdsp::GearAxis(int,int)

@Stepdsp@GetByte$qi @45 ; Stepdsp::GetByte(int)

@Stepdsp@GetErrorStatus$qi @26 ; Stepdsp::GetErrorStatus(int)

@Stepdsp@GetMoveStatus$qi @47 ; Stepdsp::GetMoveStatus(int)

@Stepdsp@GetPos$qi @21 ; Stepdsp::GetPos(int)

@Stepdsp@GetResetStatus$qv @35 ; Stepdsp::GetResetStatus()

@Stepdsp@GetStatus$qi @25 ; Stepdsp::GetStatus(int)

@Stepdsp@Init$qv @18 ; Stepdsp::Init()

@Stepdsp@InitAxis$qi @19 ; Stepdsp::InitAxis(int)

@Stepdsp@InitXY$qlluiii @28 ; Stepdsp::InitXY(long,long,unsigned int,int,int)

@Stepdsp@LoadCode$qv @17 ; Stepdsp::LoadCode()

@Stepdsp@LoadRamp$qv @15 ; Stepdsp::LoadRamp()

@Stepdsp@ModifySpeed$qii @8 ; Stepdsp::ModifySpeed(int,int)

@Stepdsp@MotorOff$qi @23 ; Stepdsp::MotorOff(int)

@Stepdsp@MoveAxis$qiluii @31 ; Stepdsp::MoveAxis(int,long,unsigned int,int)

@Stepdsp@MoveAxis1$qiluii @5 ; Stepdsp::MoveAxis1(int,long,unsigned int,int)

@Stepdsp@MoveAxisRel$qiluii @32 ; Stepdsp::MoveAxisRel(int,long,unsigned int,int)

@Stepdsp@MoveAxisRel1$qiluii @6 ; Stepdsp::MoveAxisRel1(int,long,unsigned int,int)

@Stepdsp@MoveXY$qlluii @29 ; Stepdsp::MoveXY(long,long,unsigned int,int)

@Stepdsp@MoveXY1$qlluii @1 ; Stepdsp::MoveXY1(long,long,unsigned int,int)

@Stepdsp@OutPort$qiuc @50 ; Stepdsp::OutPort(int,unsigned char)

@Stepdsp@Read$qi @42 ; Stepdsp::Read(int)

@Stepdsp@ReadAck1$qi @43 ; Stepdsp::ReadAck1(int)

@Stepdsp@ReadAck2$qi @44 ; Stepdsp::ReadAck2(int)

@Stepdsp@ReadPort$qi @51 ; Stepdsp::ReadPort(int)

@Stepdsp@ResetCard$qv @27 ; Stepdsp::ResetCard()

@Stepdsp@RingBack$qiuc @33 ; Stepdsp::RingBack(int,unsigned char)

@Stepdsp@RingBackOut$qiiuc @34 ; Stepdsp::RingBackOut(int,int,unsigned char)

@Stepdsp@SendByte$qiuc @39 ; Stepdsp::SendByte(int,unsigned char)

@Stepdsp@SendMaster$qiuiiuiuii @4 ; Stepdsp::SendMaster(int,unsigned int,int,unsigned int,unsigned int,int)

@Stepdsp@SendSlave$qiii @7 ; Stepdsp::SendSlave(int,int,int)

@Stepdsp@SetBreakPoint$qii @9 ; Stepdsp::SetBreakPoint(int,int)

@Stepdsp@SetDirection$qii @22 ; Stepdsp::SetDirection(int,int)

@Stepdsp@SetPos$qil @20 ; Stepdsp::SetPos(int,long)

@Stepdsp@SetResetStatus$qv @36 ; Stepdsp::SetResetStatus()

@Stepdsp@SetStatus$qii @24 ; Stepdsp::SetStatus(int,int)

@Stepdsp@StartXY$qv @30 ; Stepdsp::StartXY()

@Stepdsp@WaitBP$qi @49 ; Stepdsp::WaitBP(int)

@Stepdsp@WaitNotBusy$qi @38 ; Stepdsp::WaitNotBusy(int)

@Stepdsp@WaitNotSame$qiuc @46 ; Stepdsp::WaitNotSame(int,unsigned char)

@Stepdsp@WaitSame$qiuc @48 ; Stepdsp::WaitSame(int,unsigned char)

@Stepdsp@Write$qiuc @37 ; Stepdsp::Write(int,unsigned char)

@Stepdsp@WriteAck1$qi @40 ; Stepdsp::WriteAck1(int)

@Stepdsp@WriteAck2$qi @41 ; Stepdsp::WriteAck2(int)