Hey there!
So depending on what libraries you're using, you might need to package some core dll's with your final executable. In your case it looks like you're missing std.dll.
If you ever see this happen, what you can do is go to where haxe is installed on your computer and search the directory for the missing .dll file and see where it is. In my case, I found std.dll here:
C:\HaxeToolkit\haxe\lib\hxcpp\3,1,39\bin\Windows
ie, "%haxepath%\haxe\lib\hxcpp\3,1,39\bin\Windows"
In my own project, I had this problem with systools.dll, when I was using the systools library. I could copy it manually from the haxe library folder, but that's a pain. So I added a batch script to run in FlashDevelop.
In my FlashDevelop Project, I did:
Right-Click->Properties->Build->Post-Build Command Line, and entered this:
batch/PACKAGE.bat $(TargetBuild) $(BuildConfig)
And then I created a file in my project directory, under a new folder called batch/, called PACKAGE.bat, and entered this:
@echo off
set /p version=< %haxepath%\lib\systools\.current
set version=%version:.=,%
set origin=%haxepath%\lib\systools\%version%\ndll\Windows\systools.ndll
set destination=%cd%\export\windows\cpp\bin\systools.ndll
if %1==windows (
if %2==release (
:copy the necessary ndll files to the binary folder
echo FY|xcopy %origin% %destination%
)
)
Which has the effect of automatically copying over the newest version of systools.dll I have installed after my program compiles, so that I can safely just package up the bin folder. Let's explain how it works:
batch/PACKAGE.bat $(TargetBuild) $(BuildConfig)
This "post-build" command will look like this if I compile, say, Release Mode on Windows:
batch/Package.bat windows release
So the batch file receives "windows" and "release" as parameters 1 & 2.
Next:
set /p version=< %haxepath%\lib\systools\.current
set version=%version:.=,%
I need to grab the systools.dll file, but I don't want my batch file to make assumptions about what version I have installed, I just want it to grab the latest version. So I have it read the version information inside the haxelib directory and save it as a variable. Then I use that variable again in the next line as part of the directory to copy from:
set origin=%haxepath%\lib\systools\%version%\ndll\Windows\systools.ndll
set destination=%cd%\export\windows\cpp\bin\systools.ndll
These two lines set where I want to copy from and where I want to copy to.
if %1==windows (
if %2==release (
:copy the necessary ndll files to the binary folder
echo FY|xcopy %origin% %destination%
)
)
If we're compiling for windows in release mode, it copies the ndll file to the export folder.
If you ever have dll files missing, you should be able to modify this script to handle that issue.
Now as I close, it's very strange that you don't have std.dll in your bin directory -- you should NOT have to copy that manually, that always shows up for me and I've never had trouble with it, so maybe something else is going on. It should appear in export/windows/cpp/bin, and should appear right alongside your executable file (at least in windows).