Related
I am using some functions in a dll but the only way I can get the name of the function to remain as I name it is to make it extern "c". If I do not do this then I have to copy the name from directly inside the dll and put the garbled text in my code, ed "someFunctionName" ends up "[email protected]@YAHXZ". It seems that every example I ever see dose not have this problem. Is there some setting I do not know about to force the linker to use the names I type without using a def file?
It was my understanding that this has something to do with C++ convention and cannot be changed, though I could be wrong on this point and if so, would also like to earn the answer.
Mean while if you are using functions from your DLL in your own code you can link to it "implicitly" (am I confusing the terms here?) by simply linking in the lib file compiler creates for the DLL and using the regular function names without all the garbage.
I think that what I am seeing is microsoft ("decoration") not from c++. I think the c++ name mangaling follows some rules that let it show the size of data being passed as arguments.
I do not want to link to it and use .lib etc because I do not want my main project to be entangled with the dll. I am trying to make a pluggin so it will be dynamically loaded with loadlibrary and getprocaddress. I am a bit new to this but it seems to work ok, I was just not sure how to use the def file properly. For example what are the rools regarding the order of names in the def as compared to the header file and what about variables, are they exported or do I have to have a function that returns a pointer to them.
Well some of MS help I encountered states that DEF files are obsolete, or at least MS is trying to make them so.
I didn't get deep in to the DLL rules my self but from what I understand it is sufficient to declare a function as _dllexport for it to be seen from the outside. If you want to specific ordinals (like in the plug-in case) that's another matter.
Variables can be exported and so are classes. I never tried using it, but the "hello world" example of a DLL that eVC 4 builds exports a function a class and a variable and does not use DEF file.
and after building that automatically generated code I get a dll with decorated function names (I view the dll in notepad to check). At first I could not figure out what was going on but after I put the decorated names into getprossaddres it works.
I tried looking into the issue of verizon tabs unable to connect with BT keyboards. With the help of Maris here, we identified that there is a file that is present on Tmo tabs that is not on verizons:
/dev/bthid
We're guessing this is the HID driver that verizon is lacking, since Tmo connects with BT keyboard just fine.
however, since his tab is not rooted, he cannot copy this file to me. Can someone with a rooted Tmo or sprint copy this file (using root explorer, free off the market) and upload it to any free space or message me and mail it to me?
thanks everyone, I'll let yal know if this leads to anywhere
(I checked in my samsung verizon fascinate, it lacks this file too, and cannot connect to bt keyboard too. funny.)
This file isn't going to help you on its own. The files in /dev are really just interfaces to the kernel (they're defined by their major and minor node numbers, and have no actual content).
The file you're looking for is (on my T-Mobile Tab) /lib/modules/bthid.ko. Once you have that, you can use terminal to 'mknod /dev/bthid c 10 224' to create the associated device file.
I'll try to remember to pull this off my tab tonight for you, though IIRC even the T-Mobile Tab has some problems with bluetooth headsets that are remedied by the European firmware.
Well, I have a verizon tab too and am trying to figure this out.
The bthid.ko already existing in that directory.
When I run the mknod, I get mknod: not found.
Do I need to run it from a particular directory (sorry, major noob to this)
You probably need to root your system and install busybox to be able to do that.
I have rooted, guess I need to find busybox.
Sent from my SCH-I800 using XDA App
Well, ran mknod and it said the file already existed. I never checked first, took hyann's word for it that it was missing. No go on the connection either.
Hyann, you friend have any other differences?
ResonanceZero said:
This file isn't going to help you on its own. The files in /dev are really just interfaces to the kernel (they're defined by their major and minor node numbers, and have no actual content).
The file you're looking for is (on my T-Mobile Tab) /lib/modules/bthid.ko. Once you have that, you can use terminal to 'mknod /dev/bthid c 10 224' to create the associated device file.
I'll try to remember to pull this off my tab tonight for you, though IIRC even the T-Mobile Tab has some problems with bluetooth headsets that are remedied by the European firmware.
Click to expand...
Click to collapse
Thanks my friend, at least its worth a shot since ppl with TMO and Sprint have successfully used BT keyboard, and verizon tabs have never succeeded.
robinsmy1 said:
Well, ran mknod and it said the file already existed. I never checked first, took hyann's word for it that it was missing. No go on the connection either.
Hyann, you friend have any other differences?
Click to expand...
Click to collapse
which file do you mean? in my post, me and my friends concluded that only dev/bthid was different between the verizon tab and Tmo tab.
We searched for the system files and came up with all the files that had the name "HID" in it. However, except dev/bthid, all the others were present in the verizon tab.
below is the list:
"
/system/bin shows:
bluetoothd
there is also a btld, not sure if that relates to this
the just one calld "hd" (no hid)
/system/lib had a folder bluez-plugin and inside it is:
audio
input
/system/lib has files:
libbluedroid
libbluetooth
libbluetoothhd
Then decided to do a search for HID and astro found the following (more promising?):
/system/usr/keylayout/Broadcom_Bluetooth_HID.kl
/system/usr/keychars/Broadcom_Bluetooth_HID.kcm.bin
/lib/modules/bthid.ko
/dev/bthid
"
I still think that if I could get the dev/bthid, whatever kind of file that is, maybe it is a shot. because verizon tab pairs successfully with the BT keyboard, we know the BT function is okay. Its just lacking something, either a command, a registry, or a reference file that allows keyboard input to come through by BT.
Funny thing is, on my samsung fascinate phone, I could also pair but not connect the BT keyboard too. I think verizon is purposely blocking this feature on their phones. What the heck would that serve I do not know.
I think you are right about Verizon.
I got the bthid to by there by following the advice above to run the mknod and it did not fix the problem.
I have also tried using the hidd from another post and got the error "Can't open HIDP control socket: protocol not supported"
I am afraid Verizon might have done something in the base Bluetooth support. I do not know enough to know if that is in the kernel or a support file.
Doing some more research into linux (I know, long shot), please have your friend look in their bluetooth configuration files for possible differences.
I found some in /etc/bluetooth there may be more elsewhere, this is all I have found so far.
In linux there is an HIDD_Enabled flag, maybe there is one here too.............wishful thinking!
hyann said:
We searched for the system files and came up with all the files that had the name "HID" in it. However, except dev/bthid, all the others were present in the verizon tab.
Click to expand...
Click to collapse
"Present" doesnt mean they are the same! If I were you i'd extract all these files from a working ROM and compare them.
Regards,
Dave
I've finally gotten around to pulling off the bthid.ko from a stock T-Mobile Galaxy Tab. It's available from:
http://www.resonant.org/android/lib/modules/bthid.ko
(There's no index, but I actually copied my entire modules directory there, if you need the other files as well.)
Hope it helps your experiments.
This looks like it is the same file as the one that came with this tab too. Might be a configuration thing (hopefully).
Any chance you can pull the conf files from the /etc/bluetooth directory too?
Thanks
Sent from my SCH-I800 using XDA App
robinsmy1 said:
This looks like it is the same file as the one that came with this tab too. Might be a configuration thing (hopefully).
Any chance you can pull the conf files from the /etc/bluetooth directory too?
Click to expand...
Click to collapse
Here you go:
http://www.resonant.org/android/etc/bluetooth.zip
Thanks I will take a look.
It is a long shot, but worth a look.
These are the same too.
I pulled a tmobile stock rom from xda....gonna try to see if I can find differences but I am starting to be convinced it is blocked from the Kernel.
Any Devs out there have any insight into where the BT HID is controlled. Any input would be greatly appreciated.
Think I found it
I have been looking through the Verizon source from the Samsung site, and they were kind enough to include an output file from their compiles called config.
It looks this the did hot include the hidp in the build of the kernel, which I believe is the HID protocol.
No the key would be to compile it as a module and try to install it. Not sure where since I cannot find it on the tmobile stock I downloaded, but they may have compiled it into the kernel instead of as a module, which from the kconfig, seems to be an option.
I do not have a linux box at work so I will not be able to try to compile it until tonight.
If someone else wants to try, I would be happy to hear the results.
Also, if there are any devs who read this who might be able to provide some insight I would love to hear it as I am flying by the seat of my pants here
Thanks
Oh man while you guys havent gotten this to work it still makes me SOOO HAPPY to see people working on it. I am extremly windows knowledgable and still getting into the android game so I cant help yet (although I really want to).
It just makes me happy to know people are just as peeved about this problem as I am
This is excellent news robinsmy1! I'm really thrilled to death!!!!
Um, do you want to post the config file or at least a link, so more people could look into it? I have very limited linux programming experience (used to maintain a UNIX system) so I dont think I can help much, but I would like to take a look. And in these days, almost everything is googleable
robinsmy1 said:
I have been looking through the Verizon source from the Samsung site, and they were kind enough to include an output file from their compiles called config.
It looks this the did hot include the hidp in the build of the kernel, which I believe is the HID protocol.
No the key would be to compile it as a module and try to install it. Not sure where since I cannot find it on the tmobile stock I downloaded, but they may have compiled it into the kernel instead of as a module, which from the kconfig, seems to be an option.
I do not have a linux box at work so I will not be able to try to compile it until tonight.
If someone else wants to try, I would be happy to hear the results.
Also, if there are any devs who read this who might be able to provide some insight I would love to hear it as I am flying by the seat of my pants here
Thanks
Click to expand...
Click to collapse
I don't really have a place to host it the file. If you pm me your email address, I can email it to you.
The config file is just a dump of their answers to the Kconfig questions from what I can tell and they did not include the HIDP profile.
I have programming experience, but nothing in Linux at all. I put a VM on my W7 box with ubuntu just so I could troubleshoot this issue.
I am going to try to find time tonight to compile the kernel with the HIDP as a module and see where it puts it and try to pull it out and shove it into the tab to see if that will get it to work.
robinsmy1 said:
I don't really have a place to host it the file. If you pm me your email address, I can email it to you.
The config file is just a dump of their answers to the Kconfig questions from what I can tell and they did not include the HIDP profile.
I have programming experience, but nothing in Linux at all. I put a VM on my W7 box with ubuntu just so I could troubleshoot this issue.
I am going to try to find time tonight to compile the kernel with the HIDP as a module and see where it puts it and try to pull it out and shove it into the tab to see if that will get it to work.
Click to expand...
Click to collapse
I PMed my email to you. Thanks man.
OK
Emailed the config...let us know what you think.
A second opinion is always welcome
As I mentioned in the previous thread (which may be deleted now), I'm playing with the snake sample game. I was trying to create a menu following this guide (the XML way). I did exactly as the guide says but when I tried to run the project, the console said "main.out.xml: Error parsing XML: no element found".
Now there's an error in the project, but all files seem valid (there's a red cross sign next to the project, but not next to any one of the files). When I try to run the project, it tells me to fix the errors. WTF ? This is driving me crazy
Of course I tried googling, but I found nothing that could help me.
Another thing I wanted to do with the Snake app is change the way the snake is controlled - instead of keyboard I want it to be controlled either by swipe or by the accelerometer. Can any1 help me with that ?
I already got swipe, now off to accelerometer movement.
And any help with the menu thing would be appreciated too.
Guys help me out here. I'm trying to make a menu for the snake app, so one could set up things like max. apples at a time, move delay decrease rate and stuff like that. How should I do this ?
I thought of creating a new activity for the options which will be called from the menu (this menu will be shown after pressing the menu button). Is that a good solution ?
Seriously... WHAT THE **** ?!?!
I create a folder under 'res' named 'menu'. I create a file under 'menu' named 'menu.xml'. I instanly get an error message : 'error: Error parsing XML: no element found'. Now I can do whatever the **** I want (I put some menu items in it), I will NEVER EVER launch the app again, because it says there's an error in the project even though there are NO ****ING ERRORS ! FFFFFFFFFFFFFUUUUUUUUUUUUUUUUUUUUUUUU
grandioso said:
I did exactly as the guide says but when I tried to run the project, the console said "main.out.xml: Error parsing XML: no element found".
Click to expand...
Click to collapse
Are you sure you didn't try to run the .xml file instead of the whole project? When you do that you get an error, a 'main.out.xml' file and your app wont run until you delete it
For the first time I did. But the app didn't run even after I restored everything to the previous state. I had to delete the whole project and create it again.
Now I didn't even press the run button - I got the error right after creating the xml file.
But now I get it - I can create a menu, but I always have to delete the project (keep the files) and create it again. Kinda sucks.
Now please could any1 give me advice on how to handle the snake by tilting the phone ? I googled my ass off, but didn't find anything I could use.
grandioso said:
For the first time I did. But the app didn't run even after I restored everything to the previous state. I had to delete the whole project and create it again.
Now I didn't even press the run button - I got the error right after creating the xml file.
But now I get it - I can create a menu, but I always have to delete the project (keep the files) and create it again. Kinda sucks.
Now please could any1 give me advice on how to handle the snake by tilting the phone ? I googled my ass off, but didn't find anything I could use.
Click to expand...
Click to collapse
Next time you get an error, try simply deleting it from the error log. Eclipse is buggy as hell and sometimes that can fix things (if not the error will just appear again).
As for using the accelerometer, i can't really help you but it looks pretty complicated!
Try looking through the source code of "Amazed" - http://code.google.com/p/apps-for-android/source/browse/#svn/trunk/Amazed/src/com/example/amazed - It may be of some help!
Well if it's complicated then screw it, I don't have much time to funk around.
I'll try the menu, but I'm still not sure if I shoul create an extra activity for the menu. How do I save the settings if I do ?
Meltus said:
As for using the accelerometer, i can't really help you but it looks pretty complicated!
Click to expand...
Click to collapse
That's an overstatement. It's a lot simpler to do than implementing your own listview adapter, for example.
Anyway, all you need to is just let your class implement SensorListener. Then you will need to override two methods; onSensorChanged and onAccuracyChanged. Each are pretty explanatory. Inside onSensorChanged however you will need to check the sensor type, and before you can listen to the sensor you need to register it with the SensorManager (system service). Remember to unregister when you don't need it any more else it will just pointlessly suck battery.
There are many tutorials, but it is really easy to do. Just Google them if unsure, the link posted by Meltus doesn't make it easy to see how it's meant to be used.
OK, first I need to make the menu work.
So first I need to create an activity that extends PreferenceActivity. Then I create a preferences.xml file and an arrays.xml file, that's more or less clear to me.
What bothers me is that I only found 4 types of Preferences - List Preference, EditText Preference, Checkbox Preference and Ringtone Preference. Is that it ? A ****load of apps uses a number choosing preference, where you have a text input a + and a - button - did they all have to create a custom preference type ?
And I have one more dumb question - I just can't for the life of me call the damn preference activity. How do I do that ?
OK, preferences are all done.
Is there anyway in Eclipse to have it update the R.java file without having to have a clean build. I am creating the XML files as I go, and am tired of having to comment out code just to have the file rebuild itself.
Also on my one project, the project can't seem to even get the R. Layout. Main to even be read. I noticed it when created the project, in the Main. Java file it had an error. Why does Eclipse have to be so confusing lol.
Thanks for help in advance
Sent from my HTC Desire CDMA using XDA App
You can try turning the automatic building of the application off, then building it when you're ready.
The only problems I ever have is when I go to run a program after a lot of xml changes and it puts a layout_name.out.xml. Then you delete it, close the project, open the project, and clean build.
There is also the saving the xml file to be able to use the view, whatever it may be in the source files.
Thanks for quick reply, what I would like is as soon as I save the XML files it updates the R. Java
Sent from my HTC Desire CDMA using XDA App
this is a problem with eclipse. search these boards for R.java and you will find many people complaining about how Eclipse messes with their project because of some issue with R.java. if you havent tried IntelliJ before you might try that. there are no issues using it with R.java
and the Community Android Edition is free.
So if I understand you correctly, you want to be able to create something in the xml, and have it create it in your class file, which will create it in your R.java file by itself?
If this is the case, I don't think it would work like this. Everything with an id created for you. I know some of my apps, I don't directly interact with some of the views, so I don't need them created. For example, I have a label like textview that stays the same. I don't want it created and throwing up the unused variable exclamation point, nor do I want to waste memory doing it. I think this was the simplest of options, instead of deleting everything you don't use, you just create what you do.
I don't know your level of programming knowledge, so I guess I'll just leave it at that. No disrespect intended, if I have somehow offended you.
j0hnZ said:
So if I understand you correctly, you want to be able to create something in the xml, and have it create it in your class file, which will create it in your R.java file by itself?
If this is the case, I don't think it would work like this. Everything with an id created for you. I know some of my apps, I don't directly interact with some of the views, so I don't need them created. For example, I have a label like textview that stays the same. I don't want it created and throwing up the unused variable exclamation point, nor do I want to waste memory doing it. I think this was the simplest of options, instead of deleting everything you don't use, you just create what you do.
I don't know your level of programming knowledge, so I guess I'll just leave it at that. No disrespect intended, if I have somehow offended you.
Click to expand...
Click to collapse
i believe he means that he has created something in xml with an @+id/something and then when he goes to use it in one of his activities/etc it throws an error because R.java has not been updated with the id of 'something'..
killersnowman said:
i believe he means that he has created something in xml with an @+id/something and then when he goes to use it in one of his activities/etc it throws an error because R.java has not been updated with the id of 'something'..
Click to expand...
Click to collapse
Weird, I've never had that problem.
killersnowman said:
i believe he means that he has created something in xml with an @+id/something and then when he goes to use it in one of his activities/etc it throws an error because R.java has not been updated with the id of 'something'..
Click to expand...
Click to collapse
Basically, it doesn't even recognize it basically. I guess I should just recreate the project and copy paste my stuff
Sent from my HTC Desire CDMA using XDA App
I hope someone knows how to do this, I have looked everywhere and could find no reference since most of the files seem to be randomly generated names there is no extension, and I think they are similar to split archives for use by the unity engine in a game or apk. I think I got ONE open a while ago but don't know what i did, and none of the others i tried worked, I think adding the 7zip / winrar archive header to the beginning parts of the file in a hex editor is what I did on one random file, but nothing else and cant find what data that was (it was a random link i found)
0c45efac37cdc425b977292ced6a6507 is an idea of one of the file names and there are several dozen of them, ranging in 4-6 digit files sizes in the apk. which leads me to believe they are some sort of archive, or compressed or at least encrypted or obfuscated data. but nothing I search along those lines brings any results related.
I could be way off, i know. so I am looking to the pros here in the android development section to lend me hand.
there must be a tool out there that someone has made, or a method since I am sure I am not the first to try this, and my experience is limited, so hopefully I can be lead in the right direction
Thanks in advance.