As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
Recently I learned Lua, we need it to co-work with existed C code(HTTP server).
From Lua books, we know that there maybe to way to make them co-working:
From Lua, you can wrap C code in share library(xxx.so) that Lua use require to import them.
From C, you can use existed Lua API to operate on lua_state, it's some trick but it works well.
I adopt both of them and everything seems great, by using Lua we can save a lot of time to implement our business logic. But I'm quite nervous about current architecture, although there was no serious problem in it, I always worried about it, if there was some thing happened, for example, serious performance bottleneck, memory related and so on.
Is anyone got rich experience in this, please give some some advice. Thanks.
Lua is designed to work well with both C and C++. The C API is meant for that.
You don't need to create and use shared libraries to extend Lua. It is the easiest way to extend the standard command line interpreter but it should be easy (if not easier) to link static C libraries for Lua in your own application.
If you want to see some examples of C libraries for Lua, see mine. There are many others.
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I would like to know if there is any dictionary library for C. A dictionary library, literally (It has nothing to do with python dictionaries (hashmaps)). With all the words of the english language, and with tools like...
"I want to print all words that begins with C and end with Y".
I'll not google it, because I really want to know your opinion, if there is any that is specifically good.
Thank you!
You might want to start by looking at Aspell. While it mostly functions as a spell-checker, Aspell also has support for using multiple dictionaries at once and intelligently handling personal dictionaries when more than one Aspell process is open at once. I don't believe you have to be connected to the Internet to use it as well.
Wiktionary might also be of any help. There are a lot of localized variations to support different languages and there will probably be a way to ask them to support your language of interest, if it is not already there.
There's amazing Wordnik API, if you don't mind using Internet for this task. The API is fairly easy and supports regex search. The method you are looking for is /words.{format}/search/{query}
It also has methods to retrieve meanings (/word.{format}/{word}/definitions), synonyms (/word.{format}/{word}/relatedWords), and many other things.
There currently are no C wrappers, although it's very easy to use API directly with libcurl and any JSON or XML parser.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
Ive been searching around and I couldnt find anything on how to really begin programming for the Odyssey 2. I thought it was be kind of fun to mess around with one, to maybe try and program a simple game. But I wanted to know how I could begin. Like for example what is the console coded with, assembly? C?
Is there any example code online? Are there some tutorials?
I have been trying to find some, but have had no success.
It has only 64-bytes of memory, so yes, you need to use assembly.
There is an open-source, well commented game Kill the attacking aliens which should help you get started. When in doubt, you can also check the source codes of Odyssey² open-source emulators o2em.
There is also a good deal of documentation of the system here (this page in particular).
It has an Intel 8048 CPU, so you're probably pretty much stuck with assembly language -- I don't know of any compilers that target an 8048, and with only a couple hundred bytes of RAM available (only 64 bytes of that for general-purpose use), it doesn't seem like a good target for a compiler either. There are a few 8048 assemblers around, mostly of them freely downloadable. You can also dig up a few Odessey 2 emulators if you do a little looking (again, at least some are free).
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
What is a programming language to make program with a GUI. I know there is a way to make a GUI using C in Windows, but I want to program with Linux and make my programs compatible with other OS's as well. Any recommendations?
If all you want to do is make a GUI, why don't you just use HTML?
Alternatively, if you really want it to be a more native app, maybe consider Java.
I know there is a way to make a gui with C in windows but I want to program with Linux
Who told you that you can't write a GUI app in C on Linux...
Also, for whipping up quick GUIs, there's wxPython.
You cannot create a GUI using the standard C library. You can make one with an external library though.
With OpenCV, it is possible to make a GUI, and there is a large community behind the project. You can find lots of code examples and tutorials on their website. In addition, you can use OpenCV for lots of other computer vision related things.
You could also use GTK+ to write a GUI for your program. It is very simple, and easy to use for beginners. It's more focused on graphics though, and if you want another functionality required by an external library, you might not be able to use GTK+.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I really would love to go through the experience of building a compiler, lexer, and so on using C, however I havn't found a single resource on creating one. I've read the book about creating your own language using Ruby, but it just talks about how C is the best option, and won't tell you where to go from there.
Is their any nice resources for building a language using C? I don't care how long it is, I just want to know how to build one.
One of the nice things about compilers/interpreters is that it doesn't really matter what language they are written in. In the final stage they will just be an executable on someone's machine.
That being said while writing my compiler (something I am currently doing) I have used several books that have been extremely helpful:
Compiler Construction by Niklaus Wirth
Compilers Principles, Techniques, and Tools by Jeffrey Ullman, Alfred Aho, Ravi Sethi
The Wirth book will walk you through all the stages of creating a compiler for a language called Oberon-0. It also has the entire source code for his finished compiler, so you can play around with it on your own machine. The compiler itself was written in Pascal (something else that Wirth created).
The Dragon Book has really good information and examples in C! This may be what you are looking for, but as I said above, the language you write the compiler in isn't all that important.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I've got a C++ app that ships on Windows and OSX. It communicates with our backend using TCP (encrypted with OpenSSL, natch). I'd like to throw up some speed bumps for folks who are trying to reverse engineer the protocol and/or disassemble the executable.
Skype does an excellent job of this, which is why you won't find a lot of apps that speak skype. Here is a really good read about what it does: http://www.secdev.org/conf/skype_BHEU06.handout.pdf
I'd like some ideas about how to accomplish similar stuff our app. Are there commercial products that make code harder to statically analyze? What is the best way to invest my time to accomplish the goals I've listed?
Thanks,
Some simple suggestions for OSX:
Prevent gdb from attaching to your program
http://www.steike.com/code/debugging-itunes-with-gdb/
(this can be worked around, but will keep some casual explorers away)
Have at least some of the code in your product stored outside the text segment of the executable, for example in data, or in an external (encrypted) shared library.
Minimally protect any sensitive string data by not storing it in plain text. Run "strings" against your executable, and if you see anything that might be helpful to someone trying to figure out the protocol, encrypt it.
GCC's -fomit-frame-pointer option can make debugging more painful (but can interact badly with C++ exceptions).
If I remember correctly Skype is using something similar (maybe they pay them to implement it in Skype, who knows) to "Code Guards" described in:
https://www.cerias.purdue.edu/tools_and_resources/bibtex_archive/archive/2001-49.pdf