Search Results

Search found 5623 results on 225 pages for 'inline assembly'.

Page 44/225 | < Previous Page | 40 41 42 43 44 45 46 47 48 49 50 51  | Next Page >

  • Learning about the low level

    - by Anoners
    I'm interested in learning more about the PC from a lower (machine) level. I graduated from a school which taught us concepts using the Java language which abstracted out that level almost completely. As a result I only learned a bit from the one required assembly language course. In order to cram in ASM and quite a few details about architecture, it was hard to get a very deep picture of what is going on there. At work I focus on unix socket programming in C, so i'm much closer to the hardware now, but I feel I should learn a bit more about what streams really are, how memory management and paging works, what goes on when you call "paint()" on a graphics buffer, etc. I missed out on a lot of this and i'm looking for a good resource to get me started. I've heard a lot about the "Pink Book" by Peter Norton (Programmer's Guide to the IBM PC, Programmer's Guide to inside the PC, etc). It seems like this is on the right track, however the original is quite out dated and the newer ones have had conflicting reviews, with many people saying to stay away from it. I'm not sure what the SO crowd thinks about this book or if they have some suggestions for similar books, online resources, etc that may be good primers for this sort of thing. Any suggestions would be appreciated.

    Read the article

  • SAL and SAR by 0 errors

    - by Roy McAvoy
    I have discovered a bug in some assembly code I have been working with but can't figure how to fix it. When shifting left by 0 the result ends up being 0 instead of jut the number. The same applies when shifting to the right. Any and all help is much appreciated. function sal(n,k:integer):integer; begin asm cld mov cx, k @1: sal n, 1 loop @1 end; sal:= n; end; function sar(n,k:integer):integer; begin asm cld mov cx, k @1: sar n, 1 loop @1 end; sar:=n; end; I have tried to changed them in the following way and it still does not work properly. function sal(n,k:integer):integer; begin asm cld mov cx, k jcxz @done @1: sal n, 1 loop @1 @done: end; sal:= n; end; function sar(n,k:integer):integer; begin asm cld mov cx, k jcxz @done @1: sar n, 1 loop @1 @done: end; sar:=n; end;

    Read the article

  • Read from file hexadecimal number and change their representation style

    - by user576844
    I want to write a program changing the notation of all hexadecimal numbers found in an assembly source file from traditional (h) to C-style (0x). I have started the coding part but am not sure how can I detect the hexadecimal numbers and eventually change the style and save it back in the file... I have started writing the program.. ## Mips program - .data fin: .ascii "" # filename for input msg0: .asciiz "aaaa" msg1: .asciiz "Please enter the input file name:" buffer: .asciiz "" .text #----------------------- li $v0, 4 la $a0, msg1 syscall li $v0, 8 la $a0, fin li $a1, 21 syscall jal fileRead #read from file move $s1, $v0 #$t0 = total number of bytes li $t0, 0 # Loop counter loop: bge $t0, $s1, end #if end of file reached OR if there is an error in the file lb $t5, buffer($t0) #load next byte from file jal checkhexa #check for hexadecimal numbers addi $t0, $t0, 1 #increment loop counter j loop end: jal output jal fileClose li $v0, 10 syscall fileRead: # Open file for reading li $v0, 13 # system call for open file la $a0, fin # input file name li $a1, 0 # flag for reading li $a2, 0 # mode is ignored syscall # open a file move $s0, $v0 # save the file descriptor # reading from file just opened li $v0, 14 # system call for reading from file move $a0, $s0 # file descriptor la $a1, buffer # address of buffer from which to read li $a2, 100000 # hardcoded buffer length syscall # read from file jr $ra Any help would be appreciated.

    Read the article

  • How can I know what this does?

    - by Dabor Troppe
    I got this piece of Assembly code extracted from some piece of software, but unfortunately I don't know anything of assembler and the bits I touched of Assembler was back in the Commodore Amiga with the 68000. Can anybody guide me on how I could understand this code without me needing to learn assembler from scratch, or just tell me what it does? Is there any kind of "Simulator" out there that I can run this on to see what it does? -[ObjSample Param1:andParam2:]: 00000c79 pushl %ebp 00000c7a movl %esp,%ebp 00000c7c subl $0x48,%esp 00000c7f movl %ebx,0xf4(%ebp) 00000c82 movl %esi,0xf8(%ebp) 00000c85 movl %edi,0xfc(%ebp) 00000c88 calll 0x00000c8d 00000c8d popl %ebx 00000c8e cmpb $-[ObjSample delegate],_bDoOnce.26952-0xc8d(%ebx) 00000c95 jel 0x00000d47 00000c9b movb $-[ObjSample delegate],_bDoOnce.26952-0xc8d(%ebx) 00000ca2 movl 0x7dc0-0xc8d(%ebx),%eax 00000ca8 movl %eax,0x04(%esp) 00000cac movl 0x7df4-0xc8d(%ebx),%eax 00000cb2 movl %eax,(%esp) 00000cb5 calll _objc_msgSend 00000cba movl 0x7dbc-0xc8d(%ebx),%edx 00000cc0 movl %edx,0x04(%esp) 00000cc4 movl %eax,(%esp) 00000cc7 calll _objc_msgSend 00000ccc movl %eax,0xe4(%ebp) 00000ccf movl 0x7db8-0xc8d(%ebx),%eax 00000cd5 movl %eax,0x04(%esp) 00000cd9 movl 0xe4(%ebp),%eax 00000cdc movl %eax,(%esp) 00000cdf calll _objc_msgSend 00000ce4 leal (%eax,%eax),%edi 00000ce7 movl %edi,(%esp) 00000cea calll _malloc 00000cef movl %eax,%esi 00000cf1 movl %edi,0x08(%esp) 00000cf5 movl $-[ObjSample delegate],0x04(%esp) 00000cfd movl %eax,(%esp) 00000d00 calll _memset 00000d05 movl $0x00000004,0x10(%esp) 00000d0d movl %edi,0x0c(%esp) 00000d11 movl %esi,0x08(%esp) 00000d15 movl 0x7db4-0xc8d(%ebx),%eax 00000d1b movl %eax,0x04(%esp) 00000d1f movl 0xe4(%ebp),%eax 00000d22 movl %eax,(%esp) 00000d25 calll _objc_msgSend 00000d2a xorl %edx,%edx 00000d2c movl %edi,%eax 00000d2e shrl $0x03,%eax 00000d31 jmp 0x00000d34 00000d33 incl %edx 00000d34 cmpl %edx,%eax 00000d36 ja 0x00000d33 00000d38 movl %esi,(%esp) 00000d3b calll _free 00000d40 movb $0x01,_isAuthenticated-0xc8d(%ebx) 00000d47 movzbl _isAuthenticated-0xc8d(%ebx),%eax 00000d4e movl 0xf4(%ebp),%ebx 00000d51 movl 0xf8(%ebp),%esi 00000d54 movl 0xfc(%ebp),%edi 00000d57 leave 00000d58 ret

    Read the article

  • 1k of Program Space, 64 bytes of RAM. Is 1 wire communication possible?

    - by Earlz
    (If your lazy see bottom for TL;DR) Hello, I am planning to build a new (prototype) project dealing with physical computing. Basically, I have wires. These wires all need to have their voltage read at the same time. More than a few hundred microseconds difference between the readings of each wire will completely screw it up. The Arduino takes about 114 microseconds. So the most I could read is 2 or 3 wires before the latency would skew the accuracy of the readings. So my plan is to have an Arduino as the "master" of an array of ATTinys. The arduino is pretty cramped for space, but it's a massive playground compared to the tinys. An ATTiny13A has 1k of flash ROM(program space), 64 bytes of RAM, and 64 bytes of (not-durable and slow) EEPROM. (I'm choosing this for price as well as size) The ATTinys in my system will not do much. Basically, all they will do is wait for a signal from the Master, and then read the voltage of 1 or 2 wires and store it in RAM(or possibly EEPROM if it's that cramped). And then send it to the Master using only 1 wire for data.(no room for more than that!). So far then, all I should have to do is implement trivial voltage reading code (using built in ADC). But this communication bit I'm worried about. Do you think a communication protocol(using just 1 wire!) could even be implemented in such constraints? TL;DR: In less than 1k of program space and 64 bytes of RAM(and 64 bytes of EEPROM) do you think it is possible to implement a 1 wire communication protocol? Would I need to drop to assembly to make it fit? I know that currently my Arduino programs linking to the Wiring library are over 8k, so I'm a bit concerned.

    Read the article

  • bin-deploying DLLs banned in leiu of GAC on shared IIS 6 servers

    - by craigmoliver
    I need to solicit feedback about a recent security policy change at an organization I work with. They have recently banned the bin-deployment of DLLs to shared IIS 6 application servers. These servers host many isolated web application pools. The new rules require all DLLs to be installed in GAC. The is a problem for me because I bin-deploy several dlls including the ASP.NET MVC Framework, HTML Agility Pack, ELMAH, and my own shared class libraries. I do this because: Eliminates web application server dependencies to the Global Assembly Cache. Allows me (the developer) to have control of what goes on inside my application. Enables the application to deployed as a "package". Removes application deployment burden from the server administrators. Now, here are my questions. From a security perspective what are the advantages to using the GAC vs. bin-deployment? Is it possible to host multiple versions of the same DLL in the GAC? Has anyone run into similar restrictions?

    Read the article

  • Maven - 'all' or 'parent' project for aggregation?

    - by disown
    For educational purposes I have set up a project layout like so (flat in order to suite eclipse better): -product | |-parent |-core |-opt |-all Parent contains an aggregate project with core, opt and all. Core implements the mandatory part of the application. Opt is an optional part. All is supposed to combine core with opt, and has these two modules listed as dependencies. I am now trying to make the following artifacts: product-core.jar product-core-src.jar product-core-with-dependencies.jar product-opt.jar product-opt-src.jar product-opt-with-dependencies.jar product-all.jar product-all-src.jar product-all-with-dependencies.jar Most of them are fairly straightforward to produce. I do have some problem with the aggregating artifacts though. I have managed to make the product-all-src.jar with a custom assembly descriptor in the 'all' module which downloads the sources for all non-transitive deps, and this works fine. This technique also allows me to make the product-all-with-dependencies.jar. I however recently found out that you can use the source:aggregate goal in the source plugin to aggregate sources of the entire aggregate project. This is also true for the javadoc plugin, which also aggregates through the usage of the parent project. So I am torn between my 'all' module approach and ditching the 'all' module and just use the 'parent' module for all aggregation. It feels unclean to have some aggregate artifacts produced in 'parent', and others produced in 'all'. Is there a way of making an 'product-all' jar in the parent project, or to aggregate javadoc in the 'all' project? Or should I just keep both? Thanks

    Read the article

  • maven assemblies. Putting each dependency with transitive dependencies in own directory?

    - by jr
    I have a maven project which consists of a few modules. This is to be deployed on a client machine and will involve installing Tomcat and will make use of NSIS for installer. There is a separate application which monitors tomcat and can restart it, perform updates, etc. So, I have the modules setup as follows: project +-- client (all code, handlers, for the war) +-- client-common - (shared code, shared between monitor and client) +-- client-web - (the war, basically just uses war has applicationcontext, web.xml,etc) +-- monitor - (the monitor application jar. Uses wrapper to run) So, I need to create an installer. I was planning on creating another module which would be the installer. This is where I would have tomcat directory and I'd like maven to "assemble" everything and then run NSIS so I can create the final installer. However, I need to have the monitor jar file in a directory and then have all monitors dependencies in a lib/ directory. The final directory structure should be: project-installer-directory/monitor/monitor-version.jar project-installer-directory/monitor/lib/monitor-dep-1.jar project-installer-directory/monitor/lib/monitor-dep-2.jar project-installer-directory/monitor/lib/monitor-dep-3.jar project-installer-directory/webapps/client-web.war Where in the client-web\WEB-INF\lib directory we will have all client-web's dependencies after it is exploded. That works, I have the .war file. What I am having problems with is getting the monitor module dependencies independent of the dependencies of the client-web module. I tried to just create the installer module and make the monitor and client-web dependencies, but when I use dependencies-copy it gives me everything. Not what I want. I'm leaning towards creating a new module called monitor-assembly or something to give me a zip file which contains the directory format I need, but that is yet another module. Can someone please help me with the correct way to accomplish this? thanks!

    Read the article

  • Handling Types Defined in Plug-ins That Are No Longer Available

    - by Chris
    I am developing a .NET framework application that allows users to maintain and save "projects". A project can consist of components whose types are defined in the assemblies of the framework itself and/or in third-party assemblies that will be made available to the framework via a yet-to-be-built plug-in architecture. When a project is saved, it is simply binary-serialised to file. Projects are portable, so multiple users can load the same project into their own instances of the framework (just as different users may open the same MSWord document in their own local copies of MSWord). What's more, the plug-ins available to one user's framework might not be available to that of another. I need some way of ensuring that when a user attempts to open (i.e. deserialise) a project that includes a type whose defining assembly cannot be found (either because of a framework version incompatibility or the absence of a plug-in), the project still opens but the offending type is somehow substituted or omitted. Trouble is, the research I've done to date does not even hint at a suitable approach. Any ideas would be much appreciated, thanks.

    Read the article

  • How to insert zeros between bits in a bitmap?

    - by anatolyg
    I have some performance-heavy code that performs bit manipulations. It can be reduced to the following well-defined problem: Given a 13-bit bitmap, construct a 26-bit bitmap that contains the original bits spaced at even positions. To illustrate: 0000000000000000000abcdefghijklm (input, 32 bits) 0000000a0b0c0d0e0f0g0h0i0j0k0l0m (output, 32 bits) I currently have it implemented in the following way in C: if (input & (1 << 12)) output |= 1 << 24; if (input & (1 << 11)) output |= 1 << 22; if (input & (1 << 10)) output |= 1 << 20; ... My compiler (MS Visual Studio) turned this into the following: test eax,1000h jne 0064F5EC or edx,1000000h ... (repeated 13 times with minor differences in constants) I wonder whether i can make it any faster. I would like to have my code written in C, but switching to assembly language is possible. Can i use some MMX/SSE instructions to process all bits at once? Maybe i can use multiplication? (multiply by 0x11111111 or some other magical constant) Would it be better to use condition-set instruction (SETcc) instead of conditional-jump instruction? If yes, how can i make the compiler produce such code for me? Any other idea how to make it faster? Any idea how to do the inverse bitmap transformation (i have to implement it too, bit it's less critical)?

    Read the article

  • Programming Environment for a Motorola 68000 in Linux

    - by Nick Presta
    Greetings all, I am taking a Structure and Application of Microcomputers course this semester and we're programming with the Motorola 68000 series CPU/board. The course syllabus suggests running something like Easy68K or Teesside Motorola 68000 Assembler/Emulator at home to test our programs. I told my prof I run x64 Linux and asked what sort of environment I would need to complete my coursework. He said that the easiest environment to use is a Windows XP 32bit VM with one of the two suggested applications installed, however, he doesn't really care what I use as long as I can test what I write at home. So I'm asking if there exists some sort of emulator or environment for Linux so I can test my code, and what sort of caveats I will run into by writing and testing my code in Linux. Also, I plan to do my editing in Vim, which probably isn't a problem, but I would like any insight into editors for 68000 assembly, if you have any. Thanks! EDIT: Just to clarify - I don't want to install Linux on the board at all - I want to program on my home machine, test the code locally, and then bring it onto the board for grading/running.

    Read the article

  • Question about CALL statement

    - by Bruce
    I have the following code in VC++ Func5(){ StackWalk(); } Func4{ Func5();} I am a Beginner in x86 Assembly Language. I am trying to find out the starting address of Func5(). I get the Func5()'s return address from its stack frame. Now before this return address there should be a CALL statement. So I extract out the bytes before the return address. Sometimes it's a near call like E8 ff ff ff d8. So for this statement I subtract the offset 0x28 from the function's return address to get Func5()'s base address (where it resides in memory). The problem is I don't know how to calculate this for a indirect NEAR call. I have been trying to find out how to do it for some time now. So I have extracted out the first 5 bytes before the return address and they are ff 75 08 ff d2 I think this stands for CALL ECX (ff d2) but I am not sure. I will be very grateful if someone can tell me what kind of CALL statement this is and how I can calculate the function's base address from this kind of call.

    Read the article

  • How is machine code understood by the machine

    - by Kraken
    I have a very naive question here, and I would like you to correct me on whatever wrong concepts I put out here. The question is as follows: I have ubuntu installed on my machine, now I write a helloWorld.c program in C language. Now, on the operating system I have a compiler installed, when I execute my helloWorld.c program, the OS schedules the compiler and that basically compiles my code into machine code, which eventually, I execute. Now my kernel code is written in C, then how does my machine interprets that code? Say my kernel code is helloWorld.c, now would not I require any compiler, to compile this code. Also, if I hardcode a compiler in maybe ROM or something, then what language is it written in? Assembly language? Let me know if I have made myself clear with the problem. Thanks. EDIT: By kernel code I mean, the code for operating system. Operating System code. I guess it is written in C right?

    Read the article

  • weird performance in C++ (VC 2010)

    - by raicuandi
    Hello, I have this loop written in C++, that compiled with MSVC2010 takes a long time to run. (300ms) for (int i=0; i<h; i++) { for (int j=0; j<w; j++) { if (buf[i*w+j] > 0) { const int sy = max(0, i - hr); const int ey = min(h, i + hr + 1); const int sx = max(0, j - hr); const int ex = min(w, j + hr + 1); float val = 0; for (int k=sy; k < ey; k++) { for (int m=sx; m < ex; m++) { val += original[k*w + m] * ds[k - i + hr][m - j + hr]; } } heat_map[i*w + j] = val; } } } It seemed a bit strange to me, so I did some tests then changed a few bits to inline assembly: (specifically, the code that sums "val") for (int i=0; i<h; i++) { for (int j=0; j<w; j++) { if (buf[i*w+j] > 0) { const int sy = max(0, i - hr); const int ey = min(h, i + hr + 1); const int sx = max(0, j - hr); const int ex = min(w, j + hr + 1); __asm { fldz } for (int k=sy; k < ey; k++) { for (int m=sx; m < ex; m++) { float val = original[k*w + m] * ds[k - i + hr][m - j + hr]; __asm { fld val fadd } } } float val1; __asm { fstp val1 } heat_map[i*w + j] = val1; } } } Now it runs in half the time, 150ms. It does exactly the same thing, but why is it twice as quick? In both cases it was run in Release mode with optimizations on. Am I doing anything wrong in my original C++ code?

    Read the article

  • Nested loop traversing arrays

    - by alecco
    There are 2 very big series of elements, the second 100 times bigger than the first. For each element of the first series, there are 0 or more elements on the second series. This can be traversed and processed with 2 nested loops. But the unpredictability of the amount of matching elements for each member of the first array makes things very, very slow. The actual processing of the 2nd series of elements involves logical and (&) and a population count. I couldn't find good optimizations using C but I am considering doing inline asm, doing rep* mov* or similar for each element of the first series and then doing the batch processing of the matching bytes of the second series, perhaps in buffers of 1MB or something. But the code would be get quite messy. Does anybody know of a better way? C preferred but x86 ASM OK too. Many thanks! Sample/demo code with simplified problem, first series are "people" and second series are "events", for clarity's sake. (the original problem is actually 100m and 10,000m entries!) #include <stdio.h> #include <stdint.h> #define PEOPLE 1000000 // 1m struct Person { uint8_t age; // Filtering condition uint8_t cnt; // Number of events for this person in E } P[PEOPLE]; // Each has 0 or more bytes with bit flags #define EVENTS 100000000 // 100m uint8_t P1[EVENTS]; // Property 1 flags uint8_t P2[EVENTS]; // Property 2 flags void init_arrays() { for (int i = 0; i < PEOPLE; i++) { // just some stuff P[i].age = i & 0x07; P[i].cnt = i % 220; // assert( sum < EVENTS ); } for (int i = 0; i < EVENTS; i++) { P1[i] = i % 7; // just some stuff P2[i] = i % 9; // just some other stuff } } int main(int argc, char *argv[]) { uint64_t sum = 0, fcur = 0; int age_filter = 7; // just some init_arrays(); // Init P, P1, P2 for (int64_t p = 0; p < PEOPLE ; p++) if (P[p].age < age_filter) for (int64_t e = 0; e < P[p].cnt ; e++, fcur++) sum += __builtin_popcount( P1[fcur] & P2[fcur] ); else fcur += P[p].cnt; // skip this person's events printf("(dummy %ld %ld)\n", sum, fcur ); return 0; } gcc -O5 -march=native -std=c99 test.c -o test

    Read the article

  • Could not load file or assembly 'AjaxControlToolkit' or one of its dependencies. Access is denied.

    - by datagridgirl
    I wanted to post a solution to an issue that comes up every time I have to setup a new developer in our organization:      Could not load file or assembly 'AjaxControlToolkit' or one of its dependencies. Access is denied.  My solution is to grant Full Control to the "Everyone" group to the folder C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files  I know there are other solutions to this problem, but this one seems the simplest for me.  Marcie

    Read the article

  • Why is learning assembly language seen as a disadvantage?

    - by cprogcr
    I was recently reading an article about making a compiler, and one of the disadvantages mentioned about making a compiler instead of interpreter, was "Learning Assembly language".I understand that perhaps it takes a little more time to learn ASM than it would take for a high level language. But why should it be seen as a disadvantage? And this is not the first time, I mean there are a lot of articles which see ASM as a disadvantage or not important.Personally I find ASM interesting and not at all as a "disadvantage".

    Read the article

  • Upgrading SSIS Custom Components for SQL Server 2012

    Having finally got around to upgrading my custom components to SQL Server 2012, I thought I’d share some notes on the process. One of the goals was minimal duplication, so the same code files are used to build the 2008 and 2012 components, I just have a separate project file. The high level steps are listed below, followed by some more details. Create a 2012 copy of the project file Upgrade project, just open the new project file is VS2010 Change target framework to .NET 4.0 Set conditional compilation symbol for DENALI Change any conditional code, including assembly version and UI type name Edit project file to change referenced assemblies for 2012 Change target framework to .NET 4.0 Open the project properties. On the Applications page, change the Target framework to .NET Framework 4. Set conditional compilation symbol for DENALI Re-open the project properties. On the Build tab, first change the Configuration to All Configurations, then set a Conditional compilation symbol of DENALI. Change any conditional code, including assembly version and UI type name The value doesn’t have to be DENALI, it can actually be anything you like, that is just what I use. It is how I control sections of code that vary between versions. There were several API changes between 2005 and 2008, as well as interface name changes. Whilst we don’t have the same issues between 2008 and 2012, I still have some sections of code that do change such as the assembly attributes. #if DENALI [assembly: AssemblyDescription("Data Generator Source for SQL Server Integration Services 2012")] [assembly: AssemblyCopyright("Copyright © 2012 Konesans Ltd")] [assembly: AssemblyVersion("3.0.0.0")] #else [assembly: AssemblyDescription("Data Generator Source for SQL Server Integration Services 2008")] [assembly: AssemblyCopyright("Copyright © 2008 Konesans Ltd")] [assembly: AssemblyVersion("2.0.0.0")] #endif The Visual Studio editor automatically formats the code based on the current compilation symbols, hence in this case the 2008 code is grey to indicate it is disabled. As you can see in the previous example I have distinct assembly version attributes, ensuring I can run both 2008 and 2012 versions of my component side by side. For custom components with a user interface, be sure to update the UITypeName property of the DtsTask or DtsPipelineComponent attributes. As above I use the conditional compilation symbol to control the code. #if DENALI [DtsTask ( DisplayName = "File Watcher Task", Description = "File Watcher Task", IconResource = "Konesans.Dts.Tasks.FileWatcherTask.FileWatcherTask.ico", UITypeName = "Konesans.Dts.Tasks.FileWatcherTask.FileWatcherTaskUI,Konesans.Dts.Tasks.FileWatcherTask,Version=3.0.0.0,Culture=Neutral,PublicKeyToken=b2ab4a111192992b", TaskContact = "File Watcher Task; Konesans Ltd; Copyright © 2012 Konesans Ltd; http://www.konesans.com" )] #else [DtsTask ( DisplayName = "File Watcher Task", Description = "File Watcher Task", IconResource = "Konesans.Dts.Tasks.FileWatcherTask.FileWatcherTask.ico", UITypeName = "Konesans.Dts.Tasks.FileWatcherTask.FileWatcherTaskUI,Konesans.Dts.Tasks.FileWatcherTask,Version=2.0.0.0,Culture=Neutral,PublicKeyToken=b2ab4a111192992b", TaskContact = "File Watcher Task; Konesans Ltd; Copyright © 2004-2008 Konesans Ltd; http://www.konesans.com" )] #endif public sealed class FileWatcherTask: Task, IDTSComponentPersist, IDTSBreakpointSite, IDTSSuspend { // .. code goes on... } Shown below is another example I found that needed changing. I borrow one of the MS editors, and use it against a custom property, but need to ensure I reference the correct version of the MS controls assembly. This section of code is actually shared between the 2005, 2008 and 2012 versions of my component hence it has test for both DENALI and KATMAI symbols. #if DENALI const string multiLineUI = "Microsoft.DataTransformationServices.Controls.ModalMultilineStringEditor, Microsoft.DataTransformationServices.Controls, Version=11.0.00.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"; #elif KATMAI const string multiLineUI = "Microsoft.DataTransformationServices.Controls.ModalMultilineStringEditor, Microsoft.DataTransformationServices.Controls, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"; #else const string multiLineUI = "Microsoft.DataTransformationServices.Controls.ModalMultilineStringEditor, Microsoft.DataTransformationServices.Controls, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"; #endif // Create Match Expression parameter IDTSCustomPropertyCollection100 propertyCollection = outputColumn.CustomPropertyCollection; IDTSCustomProperty100 property = propertyCollection.New(); property = propertyCollection.New(); property.Name = MatchParams.Name; property.Description = MatchParams.Description; property.TypeConverter = typeof(MultilineStringConverter).AssemblyQualifiedName; property.UITypeEditor = multiLineUI; property.Value = MatchParams.DefaultValue; Edit project file to change referenced assemblies for 2012 We now need to edit the project file itself. Open the MyComponente2012.cproj  in you favourite text editor, and then perform a couple of find and replaces as listed below: Find Replace Comment Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91 Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91 Change the assembly references version from SQL Server 2008 to SQL Server 2012. Microsoft SQL Server\100\ Microsoft SQL Server\110\ Change any assembly reference hint path locations from from SQL Server 2008 to SQL Server 2012. If you use any Build Events during development, such as copying the component assembly to the DTS folder, or calling GACUTIL to install it into the GAC, you can also change these now. An example of my new post-build event for a pipeline component is shown below, which uses the .NET 4.0 path for GACUTIL. It also uses the 110 folder location, instead of 100 for SQL Server 2008, but that was covered the the previous find and replace. "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\gacutil.exe" /if "$(TargetPath)" copy "$(TargetPath)" "%ProgramFiles%\Microsoft SQL Server\110\DTS\PipelineComponents" /Y

    Read the article

  • Dynamic obfuscation by self-modifying code

    - by Fallout2
    Hi all, Here what's i am trying to do: assume you have two fonction void f1(int *v) { *v = 55; } void f2(int *v) { *v = 44; } char *template; template = allocExecutablePages(...); char *allocExecutablePages (int pages) { template = (char *) valloc (getpagesize () * pages); if (mprotect (template, getpagesize (), PROT_READ|PROT_EXEC|PROT_WRITE) == -1) { perror (“mprotect”); } } I would like to do a comparison between f1 and f2 (so tell what is identical and what is not) (so get the assembly lines of those function and make a line by line comparison) And then put those line in my template. Is there a way in C to do that? THanks Update Thank's for all you answers guys but maybe i haven't explained my need correctly. basically I'm trying to write a little obfuscation method. The idea consists in letting two or more functions share the same location in memory. A region of memory (which we will call a template) is set up containing some of the machine code bytes from the functions, more specifically, the ones they all have in common. Before a particular function is executed, an edit script is used to patch the template with the necessary machine code bytes to create a complete version of that function. When another function assigned to the same template is about to be executed, the process repeats, this time with a different edit script. To illustrate this, suppose you want to obfuscate a program that contains two functions f1 and f2. The first one (f1) has the following machine code bytes Address Machine code 0 10 1 5 2 6 3 20 and the second one (f2) has Address Machine code 0 10 1 9 2 3 3 20 At obfuscation time, one will replace f1 and f2 by the template Address Machine code 0 10 1 ? 2 ? 3 20 and by the two edit scripts e1 = {1 becomes 5, 2 becomes 6} and e2 = {1 becomes 9, 2 becomes 3}. #include <stdlib.h> #include <string.h> typedef unsigned int uint32; typedef char * addr_t; typedef struct { uint32 offset; char value; } EDIT; EDIT script1[200], script2[200]; char *template; int template_len, script_len = 0; typedef void(*FUN)(int *); int val, state = 0; void f1_stub () { if (state != 1) { patch (script1, script_len, template); state = 1; } ((FUN)template)(&val); } void f2_stub () { if (state != 2) { patch (script2, script_len, template); state = 2; } ((FUN)template)(&val); } int new_main (int argc, char **argv) { f1_stub (); f2_stub (); return 0; } void f1 (int *v) { *v = 99; } void f2 (int *v) { *v = 42; } int main (int argc, char **argv) { int f1SIZE, f2SIZE; /* makeCodeWritable (...); */ /* template = allocExecutablePages(...); */ /* Computed at obfuscation time */ diff ((addr_t)f1, f1SIZE, (addr_t)f2, f2SIZE, script1, script2, &script_len, template, &template_len); /* We hide the proper code */ memset (f1, 0, f1SIZE); memset (f2, 0, f2SIZE); return new_main (argc, argv); } So i need now to write the diff function. that will take the addresses of my two function and that will generate a template with the associated script. So that is why i would like to compare bytes by bytes my two function Sorry for my first post who was not very understandable! Thank you

    Read the article

  • How to send keypresses from qt application to libvlc

    - by anon
    I need to send keypresses from my application window to libvlc, how do i do that? I tried using varSetInteger but then i got the following error error: ‘var_SetInteger’ was not declared in this scope so i searched for the file in which var_SetInteger was defined and found that it was defined in vlc_variables.h so in included it and got the following error. What am i missing? ../vlc-0.9.10/include/vlc_variables.h:121: error: ‘__var_Create’ has not been declared ../vlc-0.9.10/include/vlc_variables.h:121: error: expected identifier before ‘(’ token ../vlc-0.9.10/include/vlc_variables.h:121: error: expected )' before ‘*’ token ../vlc-0.9.10/include/vlc_variables.h:121: error: expected ‘,’ or ‘...’ before ‘*’ token ../vlc-0.9.10/include/vlc_variables.h:121: error: expected constructor, destructor, or type conversion before ‘)’ token ../vlc-0.9.10/include/vlc_variables.h:122: error: ‘__var_Destroy’ has not been declared ../vlc-0.9.10/include/vlc_variables.h:122: error: expected identifier before ‘(’ token ../vlc-0.9.10/include/vlc_variables.h:122: error: expected )' before ‘*’ token ../vlc-0.9.10/include/vlc_variables.h:122: error: expected ‘,’ or ‘...’ before ‘*’ token ../vlc-0.9.10/include/vlc_variables.h:122: error: expected constructor, destructor, or type conversion before ‘)’ token ../vlc-0.9.10/include/vlc_variables.h:124: error: ‘__var_Change’ has not been declared ../vlc-0.9.10/include/vlc_variables.h:124: error: expected identifier before ‘(’ token ../vlc-0.9.10/include/vlc_variables.h:124: error: expected )' before ‘*’ token ../vlc-0.9.10/include/vlc_variables.h:124: error: expected ‘,’ or ‘...’ before ‘*’ token ../vlc-0.9.10/include/vlc_variables.h:124: error: expected constructor, destructor, or type conversion before ‘)’ token ../vlc-0.9.10/include/vlc_variables.h:126: error: ‘__var_Type’ has not been declared ../vlc-0.9.10/include/vlc_variables.h:126: error: expected identifier before ‘(’ token ../vlc-0.9.10/include/vlc_variables.h:126: error: expected )' before ‘*’ token ../vlc-0.9.10/include/vlc_variables.h:126: error: expected ‘,’ or ‘...’ before ‘*’ token ../vlc-0.9.10/include/vlc_variables.h:126: error: expected constructor, destructor, or type conversion before ‘)’ token ../vlc-0.9.10/include/vlc_variables.h:127: error: ‘__var_Set’ has not been declared ../vlc-0.9.10/include/vlc_variables.h:127: error: expected identifier before ‘(’ token ../vlc-0.9.10/include/vlc_variables.h:127: error: expected )' before ‘*’ token ../vlc-0.9.10/include/vlc_variables.h:127: error: expected ‘,’ or ‘...’ before ‘*’ token ../vlc-0.9.10/include/vlc_variables.h:127: error: expected constructor, destructor, or type conversion before ‘)’ token ../vlc-0.9.10/include/vlc_variables.h:128: error: ‘__var_Get’ has not been declared ../vlc-0.9.10/include/vlc_variables.h:128: error: expected identifier before ‘(’ token ../vlc-0.9.10/include/vlc_variables.h:128: error: expected )' before ‘*’ token ../vlc-0.9.10/include/vlc_variables.h:128: error: expected ‘,’ or ‘...’ before ‘*’ token ../vlc-0.9.10/include/vlc_variables.h:128: error: expected constructor, destructor, or type conversion before ‘)’ token ../vlc-0.9.10/include/vlc_variables.h:131: error: ‘__var_Command’ has not been declared ../vlc-0.9.10/include/vlc_variables.h:131: error: expected identifier before ‘(’ token ../vlc-0.9.10/include/vlc_variables.h:131: error: expected )' before ‘*’ token ../vlc-0.9.10/include/vlc_variables.h:131: error: expected ‘,’ or ‘...’ before ‘*’ token ../vlc-0.9.10/include/vlc_variables.h:131: error: expected constructor, destructor, or type conversion before ‘)’ token ../vlc-0.9.10/include/vlc_variables.h:133: error: expected constructor, destructor, or type conversion before ‘(’ token ../vlc-0.9.10/include/vlc_variables.h:171: error: ‘__var_AddCallback’ has not been declared ../vlc-0.9.10/include/vlc_variables.h:171: error: expected identifier before ‘(’ token ../vlc-0.9.10/include/vlc_variables.h:171: error: expected )' before ‘*’ token ../vlc-0.9.10/include/vlc_variables.h:171: error: expected ‘,’ or ‘...’ before ‘*’ token ../vlc-0.9.10/include/vlc_variables.h:171: error: expected constructor, destructor, or type conversion before ‘)’ token ../vlc-0.9.10/include/vlc_variables.h:172: error: ‘__var_DelCallback’ has not been declared ../vlc-0.9.10/include/vlc_variables.h:172: error: expected identifier before ‘(’ token ../vlc-0.9.10/include/vlc_variables.h:172: error: expected )' before ‘*’ token ../vlc-0.9.10/include/vlc_variables.h:172: error: expected ‘,’ or ‘...’ before ‘*’ token ../vlc-0.9.10/include/vlc_variables.h:172: error: expected constructor, destructor, or type conversion before ‘)’ token ../vlc-0.9.10/include/vlc_variables.h:173: error: ‘__var_TriggerCallback’ has not been declared ../vlc-0.9.10/include/vlc_variables.h:173: error: expected identifier before ‘(’ token ../vlc-0.9.10/include/vlc_variables.h:173: error: expected )' before ‘*’ token ../vlc-0.9.10/include/vlc_variables.h:173: error: expected ‘,’ or ‘...’ before ‘*’ token ../vlc-0.9.10/include/vlc_variables.h:173: error: expected constructor, destructor, or type conversion before ‘)’ token ../vlc-0.9.10/include/vlc_variables.h:201: error: ‘__var_SetInteger’ declared as an ‘inline’ variable ../vlc-0.9.10/include/vlc_variables.h:201: error: ‘vlc_object_t’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:201: error: ‘p_obj’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:201: error: expected primary-expression before ‘const’ ../vlc-0.9.10/include/vlc_variables.h:201: error: expected primary-expression before ‘int’ ../vlc-0.9.10/include/vlc_variables.h:201: error: initializer expression list treated as compound expression ../vlc-0.9.10/include/vlc_variables.h:202: error: expected ‘,’ or ‘;’ before ‘{’ token ../vlc-0.9.10/include/vlc_variables.h:215: error: ‘__var_SetBool’ declared as an ‘inline’ variable ../vlc-0.9.10/include/vlc_variables.h:215: error: ‘vlc_object_t’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:215: error: ‘p_obj’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:215: error: expected primary-expression before ‘const’ ../vlc-0.9.10/include/vlc_variables.h:215: error: expected primary-expression before ‘bool’ ../vlc-0.9.10/include/vlc_variables.h:215: error: initializer expression list treated as compound expression ../vlc-0.9.10/include/vlc_variables.h:216: error: expected ‘,’ or ‘;’ before ‘{’ token ../vlc-0.9.10/include/vlc_variables.h:229: error: ‘__var_SetTime’ declared as an ‘inline’ variable ../vlc-0.9.10/include/vlc_variables.h:229: error: ‘vlc_object_t’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:229: error: ‘p_obj’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:229: error: expected primary-expression before ‘const’ ../vlc-0.9.10/include/vlc_variables.h:229: error: expected primary-expression before ‘i’ ../vlc-0.9.10/include/vlc_variables.h:229: error: initializer expression list treated as compound expression ../vlc-0.9.10/include/vlc_variables.h:230: error: expected ‘,’ or ‘;’ before ‘{’ token ../vlc-0.9.10/include/vlc_variables.h:243: error: ‘__var_SetFloat’ declared as an ‘inline’ variable ../vlc-0.9.10/include/vlc_variables.h:243: error: ‘vlc_object_t’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:243: error: ‘p_obj’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:243: error: expected primary-expression before ‘const’ ../vlc-0.9.10/include/vlc_variables.h:243: error: expected primary-expression before ‘float’ ../vlc-0.9.10/include/vlc_variables.h:243: error: initializer expression list treated as compound expression ../vlc-0.9.10/include/vlc_variables.h:244: error: expected ‘,’ or ‘;’ before ‘{’ token ../vlc-0.9.10/include/vlc_variables.h:257: error: ‘__var_SetString’ declared as an ‘inline’ variable ../vlc-0.9.10/include/vlc_variables.h:257: error: ‘vlc_object_t’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:257: error: ‘p_obj’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:257: error: expected primary-expression before ‘const’ ../vlc-0.9.10/include/vlc_variables.h:257: error: expected primary-expression before ‘const’ ../vlc-0.9.10/include/vlc_variables.h:257: error: initializer expression list treated as compound expression ../vlc-0.9.10/include/vlc_variables.h:258: error: expected ‘,’ or ‘;’ before ‘{’ token ../vlc-0.9.10/include/vlc_variables.h:270: error: ‘__var_SetVoid’ declared as an ‘inline’ variable ../vlc-0.9.10/include/vlc_variables.h:270: error: ‘vlc_object_t’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:270: error: ‘p_obj’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:270: error: expected primary-expression before ‘const’ ../vlc-0.9.10/include/vlc_variables.h:270: error: initializer expression list treated as compound expression ../vlc-0.9.10/include/vlc_variables.h:271: error: expected ‘,’ or ‘;’ before ‘{’ token ../vlc-0.9.10/include/vlc_variables.h:302: error: ‘__var_GetInteger’ declared as an ‘inline’ variable ../vlc-0.9.10/include/vlc_variables.h:302: error: ‘vlc_object_t’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:302: error: ‘p_obj’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:302: error: expected primary-expression before ‘const’ ../vlc-0.9.10/include/vlc_variables.h:302: error: initializer expression list treated as compound expression ../vlc-0.9.10/include/vlc_variables.h:303: error: expected ‘,’ or ‘;’ before ‘{’ token ../vlc-0.9.10/include/vlc_variables.h:317: error: ‘__var_GetBool’ declared as an ‘inline’ variable ../vlc-0.9.10/include/vlc_variables.h:317: error: ‘vlc_object_t’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:317: error: ‘p_obj’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:317: error: expected primary-expression before ‘const’ ../vlc-0.9.10/include/vlc_variables.h:317: error: initializer expression list treated as compound expression ../vlc-0.9.10/include/vlc_variables.h:318: error: expected ‘,’ or ‘;’ before ‘{’ token ../vlc-0.9.10/include/vlc_variables.h:332: error: ‘__var_GetTime’ declared as an ‘inline’ variable ../vlc-0.9.10/include/vlc_variables.h:332: error: ‘vlc_object_t’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:332: error: ‘p_obj’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:332: error: expected primary-expression before ‘const’ ../vlc-0.9.10/include/vlc_variables.h:332: error: initializer expression list treated as compound expression ../vlc-0.9.10/include/vlc_variables.h:333: error: expected ‘,’ or ‘;’ before ‘{’ token ../vlc-0.9.10/include/vlc_variables.h:347: error: ‘__var_GetFloat’ declared as an ‘inline’ variable ../vlc-0.9.10/include/vlc_variables.h:347: error: ‘vlc_object_t’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:347: error: ‘p_obj’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:347: error: expected primary-expression before ‘const’ ../vlc-0.9.10/include/vlc_variables.h:347: error: initializer expression list treated as compound expression ../vlc-0.9.10/include/vlc_variables.h:348: error: expected ‘,’ or ‘;’ before ‘{’ token ../vlc-0.9.10/include/vlc_variables.h:362: error: ‘__var_GetString’ declared as an ‘inline’ variable ../vlc-0.9.10/include/vlc_variables.h:362: error: ‘vlc_object_t’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:362: error: ‘p_obj’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:362: error: expected primary-expression before ‘const’ ../vlc-0.9.10/include/vlc_variables.h:362: error: initializer expression list treated as compound expression ../vlc-0.9.10/include/vlc_variables.h:363: error: expected ‘,’ or ‘;’ before ‘{’ token ../vlc-0.9.10/include/vlc_variables.h:371: error: ‘__var_GetNonEmptyString’ declared as an ‘inline’ variable ../vlc-0.9.10/include/vlc_variables.h:371: error: ‘vlc_object_t’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:371: error: ‘obj’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:371: error: expected primary-expression before ‘const’ ../vlc-0.9.10/include/vlc_variables.h:371: error: initializer expression list treated as compound expression ../vlc-0.9.10/include/vlc_variables.h:372: error: expected ‘,’ or ‘;’ before ‘{’ token ../vlc-0.9.10/include/vlc_variables.h:412: error: variable or field ‘__var_IncInteger’ declared void ../vlc-0.9.10/include/vlc_variables.h:412: error: ‘vlc_object_t’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:412: error: ‘p_obj’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:412: error: expected primary-expression before ‘const’ ../vlc-0.9.10/include/vlc_variables.h:424: error: variable or field ‘__var_DecInteger’ declared void ../vlc-0.9.10/include/vlc_variables.h:424: error: ‘vlc_object_t’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:424: error: ‘p_obj’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:424: error: expected primary-expression before ‘const’ ../vlc-0.9.10/include/vlc_variables.h:437: error: ‘__var_CreateGetInteger’ declared as an ‘inline’ variable ../vlc-0.9.10/include/vlc_variables.h:437: error: ‘vlc_object_t’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:437: error: ‘p_obj’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:437: error: expected primary-expression before ‘const’ ../vlc-0.9.10/include/vlc_variables.h:437: error: initializer expression list treated as compound expression ../vlc-0.9.10/include/vlc_variables.h:438: error: expected ‘,’ or ‘;’ before ‘{’ token ../vlc-0.9.10/include/vlc_variables.h:449: error: ‘__var_CreateGetBool’ declared as an ‘inline’ variable ../vlc-0.9.10/include/vlc_variables.h:449: error: ‘vlc_object_t’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:449: error: ‘p_obj’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:449: error: expected primary-expression before ‘const’ ../vlc-0.9.10/include/vlc_variables.h:449: error: initializer expression list treated as compound expression ../vlc-0.9.10/include/vlc_variables.h:450: error: expected ‘,’ or ‘;’ before ‘{’ token ../vlc-0.9.10/include/vlc_variables.h:461: error: ‘__var_CreateGetTime’ declared as an ‘inline’ variable ../vlc-0.9.10/include/vlc_variables.h:461: error: ‘vlc_object_t’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:461: error: ‘p_obj’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:461: error: expected primary-expression before ‘const’ ../vlc-0.9.10/include/vlc_variables.h:461: error: initializer expression list treated as compound expression ../vlc-0.9.10/include/vlc_variables.h:462: error: expected ‘,’ or ‘;’ before ‘{’ token ../vlc-0.9.10/include/vlc_variables.h:473: error: ‘__var_CreateGetFloat’ declared as an ‘inline’ variable ../vlc-0.9.10/include/vlc_variables.h:473: error: ‘vlc_object_t’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:473: error: ‘p_obj’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:473: error: expected primary-expression before ‘const’ ../vlc-0.9.10/include/vlc_variables.h:473: error: initializer expression list treated as compound expression ../vlc-0.9.10/include/vlc_variables.h:474: error: expected ‘,’ or ‘;’ before ‘{’ token ../vlc-0.9.10/include/vlc_variables.h:485: error: ‘__var_CreateGetString’ declared as an ‘inline’ variable ../vlc-0.9.10/include/vlc_variables.h:485: error: ‘vlc_object_t’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:485: error: ‘p_obj’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:486: error: expected primary-expression before ‘const’ ../vlc-0.9.10/include/vlc_variables.h:486: error: initializer expression list treated as compound expression ../vlc-0.9.10/include/vlc_variables.h:487: error: expected ‘,’ or ‘;’ before ‘{’ token ../vlc-0.9.10/include/vlc_variables.h:492: error: ‘__var_CreateGetNonEmptyString’ declared as an ‘inline’ variable ../vlc-0.9.10/include/vlc_variables.h:492: error: ‘vlc_object_t’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:492: error: ‘p_obj’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:493: error: expected primary-expression before ‘const’ ../vlc-0.9.10/include/vlc_variables.h:493: error: initializer expression list treated as compound expression ../vlc-0.9.10/include/vlc_variables.h:494: error: expected ‘,’ or ‘;’ before ‘{’ token ../vlc-0.9.10/include/vlc_variables.h:527: error: ‘__var_CreateGetIntegerCommand’ declared as an ‘inline’ variable ../vlc-0.9.10/include/vlc_variables.h:527: error: ‘vlc_object_t’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:527: error: ‘p_obj’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:527: error: expected primary-expression before ‘const’ ../vlc-0.9.10/include/vlc_variables.h:527: error: initializer expression list treated as compound expression ../vlc-0.9.10/include/vlc_variables.h:528: error: expected ‘,’ or ‘;’ before ‘{’ token ../vlc-0.9.10/include/vlc_variables.h:540: error: ‘__var_CreateGetBoolCommand’ declared as an ‘inline’ variable ../vlc-0.9.10/include/vlc_variables.h:540: error: ‘vlc_object_t’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:540: error: ‘p_obj’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:540: error: expected primary-expression before ‘const’ ../vlc-0.9.10/include/vlc_variables.h:540: error: initializer expression list treated as compound expression ../vlc-0.9.10/include/vlc_variables.h:541: error: expected ‘,’ or ‘;’ before ‘{’ token ../vlc-0.9.10/include/vlc_variables.h:553: error: ‘__var_CreateGetTimeCommand’ declared as an ‘inline’ variable ../vlc-0.9.10/include/vlc_variables.h:553: error: ‘vlc_object_t’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:553: error: ‘p_obj’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:553: error: expected primary-expression before ‘const’ ../vlc-0.9.10/include/vlc_variables.h:553: error: initializer expression list treated as compound expression ../vlc-0.9.10/include/vlc_variables.h:554: error: expected ‘,’ or ‘;’ before ‘{’ token ../vlc-0.9.10/include/vlc_variables.h:566: error: ‘__var_CreateGetFloatCommand’ declared as an ‘inline’ variable ../vlc-0.9.10/include/vlc_variables.h:566: error: ‘vlc_object_t’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:566: error: ‘p_obj’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:566: error: expected primary-expression before ‘const’ ../vlc-0.9.10/include/vlc_variables.h:566: error: initializer expression list treated as compound expression ../vlc-0.9.10/include/vlc_variables.h:567: error: expected ‘,’ or ‘;’ before ‘{’ token ../vlc-0.9.10/include/vlc_variables.h:579: error: ‘__var_CreateGetStringCommand’ declared as an ‘inline’ variable ../vlc-0.9.10/include/vlc_variables.h:579: error: ‘vlc_object_t’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:579: error: ‘p_obj’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:580: error: expected primary-expression before ‘const’ ../vlc-0.9.10/include/vlc_variables.h:580: error: initializer expression list treated as compound expression ../vlc-0.9.10/include/vlc_variables.h:581: error: expected ‘,’ or ‘;’ before ‘{’ token ../vlc-0.9.10/include/vlc_variables.h:587: error: ‘__var_CreateGetNonEmptyStringCommand’ declared as an ‘inline’ variable ../vlc-0.9.10/include/vlc_variables.h:587: error: ‘vlc_object_t’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:587: error: ‘p_obj’ was not declared in this scope ../vlc-0.9.10/include/vlc_variables.h:588: error: expected primary-expression before ‘const’ ../vlc-0.9.10/include/vlc_variables.h:588: error: initializer expression list treated as compound expression ../vlc-0.9.10/include/vlc_variables.h:589: error: expected ‘,’ or ‘;’ before ‘{’ token src/transcribeWidget.cpp:859: warning: unused parameter ‘bytesSent’ src/transcribeWidget.cpp:859: warning: unused parameter ‘bytesTotal’ ../vlc-0.9.10/include/vlc_variables.h:201: warning: ‘__var_SetInteger’ defined but not used ../vlc-0.9.10/include/vlc_variables.h:215: warning: ‘__var_SetBool’ defined but not used ../vlc-0.9.10/include/vlc_variables.h:229: warning: ‘__var_SetTime’ defined but not used ../vlc-0.9.10/include/vlc_variables.h:243: warning: ‘__var_SetFloat’ defined but not used ../vlc-0.9.10/include/vlc_variables.h:257: warning: ‘__var_SetString’ defined but not used ../vlc-0.9.10/include/vlc_variables.h:270: warning: ‘__var_SetVoid’ defined but not used ../vlc-0.9.10/include/vlc_variables.h:302: warning: ‘__var_GetInteger’ defined but not used ../vlc-0.9.10/include/vlc_variables.h:317: warning: ‘__var_GetBool’ defined but not used ../vlc-0.9.10/include/vlc_variables.h:332: warning: ‘__var_GetTime’ defined but not used ../vlc-0.9.10/include/vlc_variables.h:347: warning: ‘__var_GetFloat’ defined but not used ../vlc-0.9.10/include/vlc_variables.h:362: warning: ‘__var_GetString’ defined but not used ../vlc-0.9.10/include/vlc_variables.h:371: warning: ‘__var_GetNonEmptyString’ defined but not used ../vlc-0.9.10/include/vlc_variables.h:437: warning: ‘__var_CreateGetInteger’ defined but not used ../vlc-0.9.10/include/vlc_variables.h:449: warning: ‘__var_CreateGetBool’ defined but not used ../vlc-0.9.10/include/vlc_variables.h:461: warning: ‘__var_CreateGetTime’ defined but not used ../vlc-0.9.10/include/vlc_variables.h:473: warning: ‘__var_CreateGetFloat’ defined but not used ../vlc-0.9.10/include/vlc_variables.h:485: warning: ‘__var_CreateGetString’ defined but not used ../vlc-0.9.10/include/vlc_variables.h:492: warning: ‘__var_CreateGetNonEmptyString’ defined but not used ../vlc-0.9.10/include/vlc_variables.h:527: warning: ‘__var_CreateGetIntegerCommand’ defined but not used ../vlc-0.9.10/include/vlc_variables.h:540: warning: ‘__var_CreateGetBoolCommand’ defined but not used ../vlc-0.9.10/include/vlc_variables.h:553: warning: ‘__var_CreateGetTimeCommand’ defined but not used ../vlc-0.9.10/include/vlc_variables.h:566: warning: ‘__var_CreateGetFloatCommand’ defined but not used ../vlc-0.9.10/include/vlc_variables.h:579: warning: ‘__var_CreateGetStringCommand’ defined but not used ../vlc-0.9.10/include/vlc_variables.h:587: warning: ‘__var_CreateGetNonEmptyStringCommand’ defined but not used

    Read the article

  • Simple MSBuild Configuration: Updating Assemblies With A Version Number

    - by srkirkland
    When distributing a library you often run up against versioning problems, once facet of which is simply determining which version of that library your client is running.  Of course, each project in your solution has an AssemblyInfo.cs file which provides, among other things, the ability to set the Assembly name and version number.  Unfortunately, setting the assembly version here would require not only changing the version manually for each build (depending on your schedule), but keeping it in sync across all projects.  There are many ways to solve this versioning problem, and in this blog post I’m going to try to explain what I think is the easiest and most flexible solution.  I will walk you through using MSBuild to create a simple build script, and I’ll even show how to (optionally) integrate with a Team City build server.  All of the code from this post can be found at https://github.com/srkirkland/BuildVersion. Create CommonAssemblyInfo.cs The first step is to create a common location for the repeated assembly info that is spread across all of your projects.  Create a new solution-level file (I usually create a Build/ folder in the solution root, but anywhere reachable by all your projects will do) called CommonAssemblyInfo.cs.  In here you can put any information common to all your assemblies, including the version number.  An example CommonAssemblyInfo.cs is as follows: using System.Reflection; using System.Resources; using System.Runtime.InteropServices;   [assembly: AssemblyCompany("University of California, Davis")] [assembly: AssemblyProduct("BuildVersionTest")] [assembly: AssemblyCopyright("Scott Kirkland & UC Regents")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyTrademark("")]   [assembly: ComVisible(false)]   [assembly: AssemblyVersion("1.2.3.4")] //Will be replaced   [assembly: NeutralResourcesLanguage("en-US")] .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; }   Cleanup AssemblyInfo.cs & Link CommonAssemblyInfo.cs For each of your projects, you’ll want to clean up your assembly info to contain only information that is unique to that assembly – everything else will go in the CommonAssemblyInfo.cs file.  For most of my projects, that just means setting the AssemblyTitle, though you may feel AssemblyDescription is warranted.  An example AssemblyInfo.cs file is as follows: using System.Reflection;   [assembly: AssemblyTitle("BuildVersionTest")] .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } Next, you need to “link” the CommonAssemblyinfo.cs file into your projects right beside your newly lean AssemblyInfo.cs file.  To do this, right click on your project and choose Add | Existing Item from the context menu.  Navigate to your CommonAssemblyinfo.cs file but instead of clicking Add, click the little down-arrow next to add and choose “Add as Link.”  You should see a little link graphic similar to this: We’ve actually reduced complexity a lot already, because if you build all of your assemblies will have the same common info, including the product name and our static (fake) assembly version.  Let’s take this one step further and introduce a build script. Create an MSBuild file What we want from the build script (for now) is basically just to have the common assembly version number changed via a parameter (eventually to be passed in by the build server) and then for the project to build.  Also we’d like to have a flexibility to define what build configuration to use (debug, release, etc). In order to find/replace the version number, we are going to use a Regular Expression to find and replace the text within your CommonAssemblyInfo.cs file.  There are many other ways to do this using community build task add-ins, but since we want to keep it simple let’s just define the Regular Expression task manually in a new file, Build.tasks (this example taken from the NuGet build.tasks file). <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Go" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <UsingTask TaskName="RegexTransform" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll"> <ParameterGroup> <Items ParameterType="Microsoft.Build.Framework.ITaskItem[]" /> </ParameterGroup> <Task> <Using Namespace="System.IO" /> <Using Namespace="System.Text.RegularExpressions" /> <Using Namespace="Microsoft.Build.Framework" /> <Code Type="Fragment" Language="cs"> <![CDATA[ foreach(ITaskItem item in Items) { string fileName = item.GetMetadata("FullPath"); string find = item.GetMetadata("Find"); string replaceWith = item.GetMetadata("ReplaceWith"); if(!File.Exists(fileName)) { Log.LogError(null, null, null, null, 0, 0, 0, 0, String.Format("Could not find version file: {0}", fileName), new object[0]); } string content = File.ReadAllText(fileName); File.WriteAllText( fileName, Regex.Replace( content, find, replaceWith ) ); } ]]> </Code> </Task> </UsingTask> </Project> .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } If you glance at the code, you’ll see it’s really just going a Regex.Replace() on a given file, which is exactly what we need. Now we are ready to write our build file, called (by convention) Build.proj. <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Go" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Import Project="$(MSBuildProjectDirectory)\Build.tasks" /> <PropertyGroup> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <SolutionRoot>$(MSBuildProjectDirectory)</SolutionRoot> </PropertyGroup>   <ItemGroup> <RegexTransform Include="$(SolutionRoot)\CommonAssemblyInfo.cs"> <Find>(?&lt;major&gt;\d+)\.(?&lt;minor&gt;\d+)\.\d+\.(?&lt;revision&gt;\d+)</Find> <ReplaceWith>$(BUILD_NUMBER)</ReplaceWith> </RegexTransform> </ItemGroup>   <Target Name="Go" DependsOnTargets="UpdateAssemblyVersion; Build"> </Target>   <Target Name="UpdateAssemblyVersion" Condition="'$(BUILD_NUMBER)' != ''"> <RegexTransform Items="@(RegexTransform)" /> </Target>   <Target Name="Build"> <MSBuild Projects="$(SolutionRoot)\BuildVersionTest.sln" Targets="Build" /> </Target>   </Project> Reviewing this MSBuild file, we see that by default the “Go” target will be called, which in turn depends on “UpdateAssemblyVersion” and then “Build.”  We go ahead and import the Bulid.tasks file and then setup some handy properties for setting the build configuration and solution root (in this case, my build files are in the solution root, but we might want to create a Build/ directory later).  The rest of the file flows logically, we setup the RegexTransform to match version numbers such as <major>.<minor>.1.<revision> (1.2.3.4 in our example) and replace it with a $(BUILD_NUMBER) parameter which will be supplied externally.  The first target, “UpdateAssemblyVersion” just runs the RegexTransform, and the second target, “Build” just runs the default MSBuild on our solution. Testing the MSBuild file locally Now we have a build file which can replace assembly version numbers and build, so let’s setup a quick batch file to be able to build locally.  To do this you simply create a file called Build.cmd and have it call MSBuild on your Build.proj file.  I’ve added a bit more flexibility so you can specify build configuration and version number, which makes your Build.cmd look as follows: set config=%1 if "%config%" == "" ( set config=debug ) set version=%2 if "%version%" == "" ( set version=2.3.4.5 ) %WINDIR%\Microsoft.NET\Framework\v4.0.30319\msbuild Build.proj /p:Configuration="%config%" /p:build_number="%version%" .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } Now if you click on the Build.cmd file, you will get a default debug build using the version 2.3.4.5.  Let’s run it in a command window with the parameters set for a release build version 2.0.1.453.   Excellent!  We can now run one simple command and govern the build configuration and version number of our entire solution.  Each DLL produced will have the same version number, making determining which version of a library you are running very simple and accurate. Configure the build server (TeamCity) Of course you are not really going to want to run a build command manually every time, and typing in incrementing version numbers will also not be ideal.  A good solution is to have a computer (or set of computers) act as a build server and build your code for you, providing you a consistent environment, excellent reporting, and much more.  One of the most popular Build Servers is JetBrains’ TeamCity, and this last section will show you the few configuration parameters to use when setting up a build using your MSBuild file created earlier.  If you are using a different build server, the same principals should apply. First, when setting up the project you want to specify the “Build Number Format,” often given in the form <major>.<minor>.<revision>.<build>.  In this case you will set major/minor manually, and optionally revision (or you can use your VCS revision number with %build.vcs.number%), and then build using the {0} wildcard.  Thus your build number format might look like this: 2.0.1.{0}.  During each build, this value will be created and passed into the $BUILD_NUMBER variable of our Build.proj file, which then uses it to decorate your assemblies with the proper version. After setting up the build number, you must choose MSBuild as the Build Runner, then provide a path to your build file (Build.proj).  After specifying your MSBuild Version (equivalent to your .NET Framework Version), you have the option to specify targets (the default being “Go”) and additional MSBuild parameters.  The one parameter that is often useful is manually setting the configuration property (/p:Configuration="Release") if you want something other than the default (which is Debug in our example).  Your resulting configuration will look something like this: [Under General Settings] [Build Runner Settings]   Now every time your build is run, a newly incremented build version number will be generated and passed to MSBuild, which will then version your assemblies and build your solution.   A Quick Review Our goal was to version our output assemblies in an automated way, and we accomplished it by performing a few quick steps: Move the common assembly information, including version, into a linked CommonAssemblyInfo.cs file Create a simple MSBuild script to replace the common assembly version number and build your solution Direct your build server to use the created MSBuild script That’s really all there is to it.  You can find all of the code from this post at https://github.com/srkirkland/BuildVersion. Enjoy!

    Read the article

  • How do I add a reference to an assembly?

    - by Gold
    I am trying to run some PDF to text C# code. I have references to 2 DLLs and I get this error when I try to run the program: the type 'java.io.File' is defined in an assembly that is not referenced. You must add a reference to assembly 'IKVM.GNU.Classpath, Version=0.20.0.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58'. How do I add a reference to this assembly?

    Read the article

  • How to make XmlnsDefinition work on the local assembly?

    - by Scott Bilas
    I've started using the XmlnsDefinition attribute to tie together some CLR namespaces into a single xmlns for convenience in XAML. Unfortunately, it seems that this only works when using foreign assemblies. If I have a XAML file in the same assembly as the types that are in the namespace I'm referencing from XmlnsDefinition, then it says the type does not exist in the xmlns I am defining. Moving the type to a foreign assembly fixes the problem. Is there a way to use XmlnsDefinition on an assembly and have it be used from within that assembly via XAML?

    Read the article

  • How can I change the name of a dynamic assembly after it has been created?

    - by Samuel Jack
    Is there any way to change the name of a dynamic assembly after it has been created? I'm using a framework that uses dynamic methods, and it is creating a dynamic assembly with the same name as my main assembly (which causes problems with WPF when it tries to load resources). So I need to find a workaround, and I thought of trying to change the name of the dynamic assembly. I've tried using GetName() and then setting the Name property, but it appears that GetName returns a clone of the name because my change doesn't stick. What else can I try?

    Read the article

< Previous Page | 40 41 42 43 44 45 46 47 48 49 50 51  | Next Page >