How to recompile Adoxa's dll src
-
I want to change the Adoxa’s dll of English to my language, and I try to recompile his src file, but I always get some error like that:
Linking... Zone.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall FmtStr::FmtStr(void)" (__imp_??0FmtStr@@QAE@XZ) LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main Debug/Zone.dll : fatal error LNK1120: 2 unresolved externals Error executing link.exe. Zone.dll - 3 error(s), 0 warning(s)
Do I miss something or what? thanks for your advise and help.
-
under linker options there is a setting for inputs there again a setting for the module file. The zone plugin comes with a common.def file. You need to reference it in the linker options, thus the linker can find and use it.
Command line:
/DEF:“Common.def” -
Thanks for your help, but I’m very fool so can’t understand what you mean and how to do.
As this post:
May you can tell me how to use the correct command line order to compiler the FLHook of source code?
I mean like:
msdev flhook.dsw /make "all - win32release"
to use in the command line order.
Thanks for you help.
-
LOL
This recalls my memory when I first start to work on Freelacner 6 years ago as a person that has NO experience on programming.
When I want’s to write any code, the compile only gives error I can’t even know what it saying.
Back to topic:
Do you use GUI? If you can use your Visual Studio load that ‘dsw’ file, you may follow this:
https://msdn.microsoft.com/en-us/library/34c30xs1(v=vs.71).aspxThere will be a text box at right side of ‘Module Definition File’ for you to fillin ‘Common.def’.
And then, you may try to build with it.
BTW: I don’t receive any email from you, did you send it?
-
I have not your email……
So I can’t send any files to you.
And may you give me your email address?
Then I can send the file to you, then please make some command line order like:
msdev flhook.dsw /make "all - win32release"
for me to help me make a command line order to compiler the FLHook of source code.
Or if you already have last FLHook source code, and it can compiler with the command line order, please send to me and teach me how to do that.
Thanks for your help again. ^_^
-
When I change the source code:
STRINGTABLE LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US { 0, "Entered %Zv1" // or just "%Z" if you prefer, e.g.: 1, "Left %Zv1" // "Entered the Badlands." vs "Badlands". }
“Entered” to my Chinese language like “進入”, then recompiler the source code to dll file, no any error was find, compiler successful.
Then when I go into the game, first time when I into a zone, the text will show up, but when I go out the zone, no any text show up, even I go into the zone again, no any text show up.
Do you know what’s mistakke? can’t change the dll text to other language?
-
That’s weird, I did replied your PM.
Here is my email addr: [email protected]
Please expecting about 6 hour delay for reply.
-
JONG wrote:
@Adoxa:When I change the source code:
STRINGTABLE LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US { 0, "Entered %Zv1" // or just "%Z" if you prefer, e.g.: 1, "Left %Zv1" // "Entered the Badlands." vs "Badlands". }
……
Wait a minute.
If this is all you want to do, you can try to download a ResHacker here: http://www.angusj.com/resourcehacker/
And use it to edit the pre-compiled DLL file.
-
NeXoSE wrote:
Wait a minute.
If this is all you want to do, you can try to download a ResHacker here: http://www.angusj.com/resourcehacker/
And use it to edit the pre-compiled DLL file.
Ok, I finish my test, same like before, even I use the ResHacker to edit the English, when I go in the game, the zone still only show once time.
I think maybe is the source code limit that.
-
I changed it to [c]L"\x9032\x5165 %Zv1."[/c] and it seemed to work fine (single player, using Console to jump in & out of the zone). Of course, that’s quite inconvenient, but switching to Unicode also worked (so it was [c]“進入 %Zv1”[/c], with the whole file as UTF-16; UTF-8 didn’t work with VC6).
-
May you can tell me where am I need to change the source code to let the Chinese working fine?
Or maybe you can help me to change:
Entered %Zv1\. Left %Zv1.
to
進入 %Zv1 離開 %Zv1
Please note in the “%Zv1” of end no the “.” symbol.
Thanks for your reply and your amazing plugin.
-
He’s already told you:
Open: http://macchiato.com/unicode/convert.html
Set “Input” (The left side) to Text -> Simple
Set “Output” (The right side) to UTF-16M -> Base 16Then, enter text you want, for example: “進入”
After you done, click the > button in the middle
What you should get is two number: 9032 5165
This two number represent the two characters you just inputed.
Now you do a little convert manually by give each number a prefix \x, and remove the space between them, So it will be something like \x9032\x5165.
When \x9032\x5165 enters Freelancer, it will be your text “進入”.
If you had a lot of text needs to convert, AND you are using Firefox, Chrome or lastest IE (v11), you may:
0. Make sure you still on page: http://macchiato.com/unicode/convert.html
1. Press F12, it will pop up Development Gear if the web browser
2. Switch to “Console” tab
3. Paste following code in the Console Command Input and hit Enter:$('[name="mainTextOutput"]').value = "\\x" + ($('[name="mainTextOutput"]').value.split(" ").join("\\x"))
-
Actually, I simply meant load [c]Zone.rc[/c] in Notepad (or equivalent) and save it as Unicode - you can then type in Chinese as normal and [c]rc[/c] will compile it as usual.
As you’ve probably discovered by now, ResHacker doesn’t support [c]\x[/c], but I was able to just copy and paste the symbols from here, which apparently compiled successfully. Ah, but I’m using the fx version, which may make a difference.
-
adoxa wrote:
Actually, I simply meant load [c]Zone.rc[/c] in Notepad (or equivalent) and save it as Unicode - you can then type in Chinese as normal and [c]rc[/c] will compile it as usual.As you’ve probably discovered by now, ResHacker doesn’t support [c]\x[/c], but I was able to just copy and paste the symbols from here, which apparently compiled successfully. Ah, but I’m using the fx version, which may make a difference.
Sorry, I didn’t test for that method.
But I think he’s has difficulty to compile it in the first place.
(He’s acutally asked me in Chinese with PM before started this topic. And I did that compile as well and got same problem with that missing symbol)And I find that if I change:
#define IMPORT __declspec(dllimport)
to
#define IMPORT __declspec(dllexport)
and use following makefile,
# Makefile (VC6) for Zone. # Jason Hood, 24 February, 2014. CPPFLAGS = /nologo /W3 /O2 /MD /LD /EHsc Zone.dll: Zone.cpp Zone.res Common.lib cl $(CPPFLAGS) $** user32.lib /link /base:0x6140000 /filealign:512 Common.lib: Common.def lib /nologo /machine:ix86 /def:Common.def
The code will compile, but I think I better shut up before understanded what’s the different between
dllimport
anddllexport
.
(Yeah, seriously, I had an IDA Pro book(The IDA Pro Book infact), and I don’t even finish menu readout after 3 years from purchase, so I definitely don’t know what it says about this two differents.)And directly change the RC file did causes the problem he’s had right now. (Message only show once). And I sadly found that ResHacker don’t have the capacity to export and then import Res/RC files.
And the “zone.rc in Unicode” way looks has same result as edit with ResHacker, no matter I directly enter Chinese and save those file with Unicode or convert them into \x and save them into ANSI.
My programming experience is really low
-
adoxa wrote:
Actually, I simply meant load [c]Zone.rc[/c] in Notepad (or equivalent) and save it as Unicode - you can then type in Chinese as normal and [c]rc[/c] will compile it as usual.Thanks Adoxa, and yes, I by all means try to solve this problem, then I find:
1.If I in the Traditional Chinese of Windows system to open and edit the Zone.rc file, then use the “Simplified Chinese” to change the
Entered %Zv1
to
进入 %Zv1
then save it as Unicode, its work fine in the game like you do.
2.If I in the Traditional Chinese of Windows system to open and edit the Zone.rc file, then use the “Traditional Chinese” to change the
Entered %Zv1
to
進入 %Zv1
even I save it as Unicode, its only show in game at once.
3.If I in the Simplified Chinese of Windows system to open and edit the Zone.rc file, then use the “Traditional Chinese” or “Simplified Chinese” to change the
Entered %Zv1
to
进入 %Zv1
or
進入 %Zv1
even I save it as Unicode, its only show in game at once.
So, you see, that’s very strange.
And I find why I can compile successfully at first time(No.1), that’s when I want to save the Zone.rc file, the notepad warning me want to save ANSI or Unicode, then I choice the Unicode.
But when I do the No.2 or No.3 of way to change the Zone.rc file, the notepad hasn’t any warning, even I choice the ANSI to save(of cause, when I compile it, I use the Unicode to save, but still no different).
After I use the ResHacker to check:
The work fine of dll file use 2052 languages code(Simplified Chinese), and the other two use the 2052 languages code(Simplified Chinese) and 1028 languages code(Traditional Chinese).
If I use the ResHacker to change the dll languages code, no matter what I do, still can not work fine in the game.
Have any idea about that?
The attachment file is I recompile successfully and work fine in the game of dll, but it only test in the Traditional Chinese of Windows system, maybe you can test in your Simplified Chinese Windows system, and see what you get.