AndersMalmgren / FreePIE

Programmable Input Emulator
644 stars 144 forks source link

FreePIE Not Finding Visual C++ .DLLs OR Wiimote plug-in not working #126

Open RosesHaveThorns opened 7 years ago

RosesHaveThorns commented 7 years ago

I have recently installed FreePIE and found that when I run a script e.g. def update(): vJoy[1].setButton(0, wiimote[1].buttons.button_down(WiimoteButtons.A)) if starting: update()

It gives the error: Error Image

and sometimes opens a dialogue box telling me that a dll is missing. I've worked out that the dll is from visual c++ redistribution, and I have multiple version of it installed. I have reinstalled FreePIE to no avail.

It also happens with the scripts from Example Scripts

NOTE: the dll problem seems to be fixed now I have 'repaired' the 2010 visual distribution. The error seems to be different (caused by the wiimote plug-in) so i have changed the title.

zelmon64 commented 7 years ago

@cowminer27 please try replacing Dolphiimote.dll with this one: Dolphiimote.zip

rheng commented 7 years ago

Hi @zelmon64,

I recently installed FreePIE and was receiving the same module missing error after a fresh install. I tried replacing the Dolphiimote.dll you provided and I am getting a new issue. The program crashes on run. The error in %appdata%/FreePIE shows:

10/28/2017 12:11:18 PM - System.UnauthorizedAccessException - Access to the path 'C:\Program Files (x86)\FreePIE\dolphiimote.log' is denied.: 
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.StreamWriter.CreateFile(String path, Boolean append, Boolean checkHost)
   at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize, Boolean checkHost)
   at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding)
   at System.IO.File.InternalAppendAllText(String path, String contents, Encoding encoding)
   at System.IO.File.AppendAllText(String path, String contents)
   at FreePIE.Core.Plugins.Wiimote.DolphiimoteBridge.WiimoteLogReceived(String log)
   at FreePIE.Core.Plugins.Wiimote.DolphiimoteDll.<>c__DisplayClass18_0.<Init>b__3(IntPtr str, UInt32 length)

Next, I tried to run it as administrator, and received this error:

10/28/2017 12:12:27 PM - System.IO.IOException - The process cannot access the file 'C:\Program Files (x86)\FreePIE\dolphiimote.log' because it is being used by another process.: 
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.StreamWriter.CreateFile(String path, Boolean append, Boolean checkHost)
   at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize, Boolean checkHost)
   at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding)
   at System.IO.File.InternalAppendAllText(String path, String contents, Encoding encoding)
   at System.IO.File.AppendAllText(String path, String contents)
   at FreePIE.Core.Plugins.Wiimote.DolphiimoteBridge.WiimoteLogReceived(String log)
   at FreePIE.Core.Plugins.Wiimote.DolphiimoteDll.<>c__DisplayClass18_0.<Init>b__3(IntPtr str, UInt32 length)
zelmon64 commented 7 years ago

@cowminer27 I've managed to reproduce this error. It needs to be fixed but in the meantime you can disable Dolphiimote logging. To do this go to Settings -> Plugins-> Wiimote and uncheck Enable logging. If this doesn't work make sure Log level is set to Warning.

zelmon64 commented 7 years ago

@cowminer27 would you like to try this prerelease with the Dolphiimote logging enabled? It works for me but I would like it to be verified before I merge the code FreePIE.1.10.692.0_prerelease1.msi.zip

RosesHaveThorns commented 7 years ago

Sorry, ive been away over the weekend. I shall try this tommorow abd let you know.

rheng commented 7 years ago

BTW, the prerelease build is working for me at least. Thanks @zelmon64!